2017-04-13 39 views
0

所以我使用winston-daily-rotate-file。 在app.js我:溫斯頓旋轉寫入多個文件

var logger = require('./logger'); 

然後:

logger.info("logging to info"); 
logger.error("logging to error"); 

在記錄器/ index.js我:

var error_transport = new winston.transports.DailyRotateFile({ 
    filename: '../logs/error', 
    datePattern: 'yyyy-MM-dd.', 
    prepend: true, 
    level: 'error', 
name: 'error' 
}); 
var info_transport = new winston.transports.DailyRotateFile({ 
    filename: '../logs/info', 
    datePattern: 'yyyy-MM-dd.', 
    prepend: true, 
    level: 'info', 
    name: 'info' 
}); 

var logger = new (winston.Logger)({ 
    transports: [ 
     error_transport, 
     info_transport 
    ] 
}); 

module.exports = logger; 

什麼情況是,該文件

logs/DATE_error 

包含:

logging to error  

但是:文件

logs/DATE_info 

包含:

logging to info 
logging to error 

爲什麼信息文件還包括錯誤日誌?

回答

2

你可以閱讀有關溫斯頓的日誌記錄級別的位置:Logging Levels

的根本原因在於信息是包括錯誤日誌是「水平」具有更高的優先級數量始終日誌消息對於任何級別「的」他們優先。參見下Using Logging Levels

var logger = new (winston.Logger)({ 
 
    transports: [ 
 
     new (winston.transports.Console)({ level: 'warn' }), 
 
     new (winston.transports.File)({ filename: 'somefile.log', level: 'error' }) 
 
    ] 
 
    }); 
 
    logger.debug("Will not be logged in either transport!"); 
 
    logger.transports.console.level = 'debug'; 
 
    logger.transports.file.level = 'verbose'; 
 
    logger.verbose("Will be logged in both transports!");

+0

的例子我讀了一點點那裏。但找不到它。是否有可能只將錯誤寫入錯誤日誌和信息資訊? – oderfla

+1

我能想到的最簡單的方法就是製作2個記錄器。一個用於錯誤,一個用於信息。 – gforce301