@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.
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
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.
Diperbaiki oleh #205.
luar biasa!
Komentar yang paling membantu
Tidak perlu memperumit kode winston ketika ada alat standar untuk tugas ini: Logrotate (http://linuxcommand.org/man_pages/logrotate8.html)