Winston: Tambahkan kemampuan untuk transportasi File untuk membagi log berdasarkan tanggal

Dibuat pada 29 Mei 2011  ·  12Komentar  ·  Sumber: winstonjs/winston

@indexzero -

Bagaimana perasaan Anda tentang menambahkan parameter API opsional ke transportasi File sehingga dapat memisahkan file log menurut tanggal? Idenya adalah bahwa pada setiap hari baru, file log baru akan dibuat dan Winston akan secara otomatis menangani semua ini / mengetahui file log mana yang akan ditulis berdasarkan tanggal.

feature request

Komentar yang paling membantu

Tidak perlu memperumit kode winston ketika ada alat standar untuk tugas ini: Logrotate (http://linuxcommand.org/man_pages/logrotate8.html)

Semua 12 komentar

Akan menerima permintaan tambalan untuk ini

Dingin! Ada saran untuk API? Saya sedang memikirkan sesuatu seperti:

           // Specify path option and default to spanning by day ( 24 hours in each file )
           new (winston.transports.File)({ path: './logs' })

tetapi mungkin ada beberapa utilitas yang mengizinkan filter tanggal/waktu khusus.

Tidak perlu memperumit kode winston ketika ada alat standar untuk tugas ini: Logrotate (http://linuxcommand.org/man_pages/logrotate8.html)

@indexzero Apakah tambalan untuk ini masih dapat diterima? Saya tahu ini dapat diimplementasikan melalui opsi nama file tetapi saya dapat menambahkan opsi lain untuk ini.

itu bukan tugas daemon individu untuk setiap mengimplementasikan rotasi log. inilah mengapa kami memiliki alat seperti logrotate, seperti kata @cemuzunlar .

@cemuzunlar @Dieterbe

Saya setuju, idealnya, ini bukan masalah winston, tapi

  • winston tidak berjalan di Windows, yang tidak memiliki logrotate, meskipun beberapa (tampak lemah) upaya sederhana di berbagai blog (dan beberapa saran untuk menggunakan cygwin + logrotate yang dikompilasi sendiri, tetapi saya ragu itu bahkan mungkin dilakukan secara teoritis, dengan asumsi bahwa winston membuat file tetap terbuka untuk ditulis, yang sangat membatasi apa yang dapat Anda lakukan dengan file itu di Windows)
  • transportasi file winston sudah melakukan rotasi log, hanya dibagi berdasarkan ukuran file, bukan tanggal. Dan itu juga menghapus file lama, jadi itu semua fungsi rotasi log dasar

Jadi begitu...
berpikir keras: memindahkan logika rotasi log ke program simpul terpisah, jadi ini adalah klon logrotate sederhana yang dapat digunakan kembali yang bekerja di seluruh platform.

+1

Sementara saya juga seorang pendukung logrotate, ia tidak melakukan tugasnya sendiri. Logrotate sangat berguna karena menyediakan metode untuk memberi tahu program bahwa sudah waktunya untuk menyiram dan menutup log mereka.

Pengangkutan file memiliki fungsi _createStream.checkFile.createAndFlush yang sekilas terlihat seperti seharusnya melakukan hal yang sesuai. Untuk menggunakan ini untuk logrotate, minta program simpul Anda untuk SIGHUP dan akses fungsi ini. Saya tidak punya waktu sebelum pekerjaan saya untuk mengirim kode, tetapi saya akan mencoba malam ini dan memposting hasil saya.

Menanggapi SIGHUP dengan cara ini harus dapat dipindahkan ke windows, dan kemudian rotasi log apa pun yang Anda gunakan di windows (perpustakaan simpul atau sihir lainnya) dibiarkan sebagai latihan bagi pembaca.

Jika ada orang lain yang mencari ini:

Terima kasih atas tipnya, @pccowboy. Saya juga pendukung besar logrotate. Saya enggan menggunakan satu konfigurasi untuk layanan node.js (yaitu winston File maxsize, dll) dan lainnya (logrotate) untuk layanan lain (nginx, redis, dll) dan lebih suka menggunakan logrotate untuk semua file log saya. Saya telah menyusun fungsi sederhana yang akan mendengarkan sinyal HUP dan membuka kembali file log setelah rotasi.

Jika saya mendapat kesempatan, saya akan mencoba menulis ulang ini dengan cara yang lebih bersih (yaitu, sebagai opsi konfigurasi untuk transportasi File) dan membuat permintaan tarik.

https://Gist.github.com/suprememoocow/5133080

Diperbaiki oleh #205.

luar biasa!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

jlank picture jlank  ·  4Komentar

pocesar picture pocesar  ·  3Komentar

JaehyunLee-B2LiNK picture JaehyunLee-B2LiNK  ·  3Komentar

mohanen picture mohanen  ·  4Komentar

sinai-doron picture sinai-doron  ·  3Komentar