2016-09-27 81 views
0

我是node.js的新手,每天都要創建新的日誌/調試文件來打印console.log的值,因爲如果有一個文件會變大也無法正確查看。如何每天創建一個新的日誌

請給我建議我該怎麼辦?

任何運行的例子都會很感激我。

+0

您是手動創建日誌文件還是使用一些npm包?你可以把你正在執行的代碼?如果我們知道你在做什麼,這將很容易幫助。 –

+1

使用'logrotate'或'PM2',Node中的進程管理器也有助於日誌輪換。 – activatedgeek

+0

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

回答

2

任何程序的這種元素稱爲「記錄器」。記錄器可以輕鬆處理您的日誌文件。

有您的服務器的日誌記錄了很多實施

你可以找到任何記錄或者npmgithub,甚至在谷歌;)

例如,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!'); 
0

我建議根據日誌文件的大小旋轉日誌,使用g尺寸,你可以按照下面的方式來做。

您可以使用logrotate-stream爲此。

  1. 全球使用npm install -g logrotate-stream

  2. 運行使用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 
+0

謝謝但仍然無法爲每一天創建日誌文件。 – vicky

+0

看這個答案 http://stackoverflow.com/a/18120926/2277289 –

+0

謝謝大家,但我發現它的另一種方式,它的工作正常。 – vicky

相關問題