2015-06-22 78 views
0

沒有顏色的,我們正在使用溫斯頓記錄在我們與下面的傳輸設置項目:Node.js的溫斯頓記錄用的nohup

file: { 
      filename: __base + '/log/server.log', 
      colorize : true, 
      timestamp : true, 
      json : false, 
      prettyPrint : true 
     } 

如果應用程序開始的nohup,日誌文件不着色。它只有沒有nohup。

nohup supervisor -w . -i node_modules/ server.js & 

winston或nohup有問題嗎?

回答

1

它是由colors包(由winston使用)引起,試圖確定是否支持顏色時執行following check

if (process.stdout && !process.stdout.isTTY) { 
    return false; 
} 

這意味着,當你的應用程序在後臺運行,它不有一個終端和顏色不使用。這也會影響nohup以外的命令/應用程序(請參閱issue #121)。

一個簡單的解決方法是用--color=true參數啓動應用程序(或與process.argv.push('--color=true')require('winston')之前被稱爲模擬它

或者,您也可以修補winston - 只需添加一行lib/winston/config.js

var colors = require('colors/safe'); 
colors.enabled = true; // add this line 

但是,所有這些解決方法很可能會使控制檯記錄器即使在沒有終端的情況下也使用顏色。