我是node.js的新手,每天都要創建新的日誌/調試文件來打印console.log的值,因爲如果有一個文件會變大也無法正確查看。如何每天創建一個新的日誌
請給我建議我該怎麼辦?
任何運行的例子都會很感激我。
我是node.js的新手,每天都要創建新的日誌/調試文件來打印console.log的值,因爲如果有一個文件會變大也無法正確查看。如何每天創建一個新的日誌
請給我建議我該怎麼辦?
任何運行的例子都會很感激我。
任何程序的這種元素稱爲「記錄器」。記錄器可以輕鬆處理您的日誌文件。
有您的服務器的日誌記錄了很多實施
你可以找到任何記錄或者npm
或github
,甚至在谷歌;)
例如,npm install winston
https://github.com/winstonjs/winston
var winston = require('winston');
winston.log('info', 'Hello distributed log files!');
winston.info('Hello again distributed logs');
winston.level = 'debug';
winston.log('debug', 'Now my debug messages are written to console!');
我建議根據日誌文件的大小旋轉日誌,使用g尺寸,你可以按照下面的方式來做。
您可以使用logrotate-stream爲此。
全球使用npm install -g logrotate-stream
運行使用node app.js 2>&1 | logrotate-stream app.log --keep 5 --size '1m' --compress
說明
2>&1
發送錯誤輸出到標準輸出(detail about 2>&1
)
|
管輸出(這裏stderr和STDOUT)到下一個命令作爲輸入(此處logrotate-stream
)
app.log
日誌文件名
--keep 5
文件的最大數量,以保持
--size 1m
每個文件的最大尺寸in MB --compmress
壓縮文件
日誌文件看起來像這樣
app.log
app.log.0.gz
app.log.1.gz
app.log.2.gz
app.log.3.gz
app.log.4.gz
您是手動創建日誌文件還是使用一些npm包?你可以把你正在執行的代碼?如果我們知道你在做什麼,這將很容易幫助。 –
使用'logrotate'或'PM2',Node中的進程管理器也有助於日誌輪換。 – activatedgeek
var log_file = fs.createWriteStream('./ debug'+ timeStamp +'.log',{ flags:'w' }); console.log = function(d){// var dt = new Date(); var utcDate = dt.toUTCString(); log_file.write(utcDate +「:」+ util。格式(d)+'\ n'); }; – vicky