簡體   English   中英

Winston不正確的日志配置

[英]Winston Improper Log Configuration

我決定使用winston登錄我的node項目。 我正在Windows平台上開發這個應用程序,但最終它將在Linux平台上。

這是我用來配置記錄器的代碼。

/* Custom logging module
 * to write appropriate logs into log files as well as console.
 */

var winston = require( 'winston' );

winston.setLevels({
    info: 0,
    error: 1,
    warning: 2,
    audit: 3
});

winston.addColors({
    info: 'blue',
    error: 'red',
    warning: 'yellow',
    audit: 'green'
});

var logger = new ( winston.Logger )({
    levels: {
        info: 0,
        error: 1,
        warning: 2,
        audit: 3
    },

    transports : [
        new (winston.transports.Console)({
            level: 'info',
            prettyPrint: true,
            colorize: true,
            silent: false,
            timestamp: true
        }),

        new (winston.transports.File)({
            name : 'infoLogger',
            filename : './logs/info-log.log',
            prettyPrint: false,
            level: 'info',
            silent: false,
            colorize: true,
            timestamp: true,
            maxsize: 40000,
            maxFiles: 10,
            json: false,
            tailable : true
        }),

        new (winston.transports.File)({
            name : 'errorLogger',
            filename : './logs/error-log.log',
            prettyPrint : false,
            level : 'error',
            silent : false,
            colorize : true,
            timestamp : true,
            maxsize : 40000,
            maxFiles : 10,
            json : false,
            tailable : true
        }),

        new (winston.transports.File)({
            name : 'warningLogger',
            filename : './logs/warning-log.log',
            prettyPrint : false,
            level : 'warning',
            silent : false,
            colorize : true,
            timestamp : true,
            maxsize : 40000,
            maxFiles : 10,
            json : false,
            tailable : true
        }),

        new (winston.transports.File)({
            name : 'auditLog',
            filename : './logs/audit-log.log',
            prettyPrint : false,
            level : 'audit',
            silent : false,
            colorize : true,
            timestamp : true,
            maxsize : 40000,
            maxFiles : 10,
            json : false,
            tailable : true
        })
    ],

    colors: {
        info: 'blue',
        error: 'red',
        warning: 'yellow',
        audit: 'green'
    }
});

module.exports = logger;

我正在使用fallowing代碼登錄文件。

logger.info( 'Winstom Log Info' );
logger.error( 'Winstom Log Error' );
logger.warning( 'Winstom Log Waring' );
logger.audit( 'Winstom Log Audit' );

但是,記錄的消息中沒有使用顏色。 並且記錄的文件並不完全記錄自己的級別。 例如,

error-log.log包含以下消息。

2015-05-23T13:34:32.479Z - error: Winstom Log Error
2015-05-23T13:34:32.480Z - warning: Winstom Log Waring
2015-05-23T13:34:32.481Z - audit: Winstom Log Audit
2015-05-23T13:45:33.433Z - error: Winstom Log Error
2015-05-23T13:45:33.436Z - warning: Winstom Log Waring
2015-05-23T13:45:33.436Z - audit: Winstom Log Audit
2015-05-23T13:56:50.660Z - error: Winstom Log Error
2015-05-23T13:56:50.661Z - warning: Winstom Log Waring
2015-05-23T13:56:50.661Z - audit: Winstom Log Audit
2015-05-23T14:00:04.319Z - error: Winstom Log Error
2015-05-23T14:00:04.319Z - warning: Winstom Log Waring
2015-05-23T14:00:04.319Z - audit: Winstom Log Audit

錯誤日志也會捕獲警告和審核日志的日志。 警告日志的情況也是如此,它也在跟蹤審計日志的日志。

2015-05-23T13:34:32.480Z - warning: Winstom Log Waring
2015-05-23T13:34:32.481Z - audit: Winstom Log Audit
2015-05-23T13:45:33.436Z - warning: Winstom Log Waring
2015-05-23T13:45:33.436Z - audit: Winstom Log Audit
2015-05-23T13:56:50.661Z - warning: Winstom Log Waring
2015-05-23T13:56:50.661Z - audit: Winstom Log Audit
2015-05-23T14:00:04.319Z - warning: Winstom Log Waring
2015-05-23T14:00:04.319Z - audit: Winstom Log Audit

目前,只有審核日志和信息日志按預期工作。 審計僅包含審計日志和包含其中每個日志的信息日志。

導致此錯誤的是什么? 還請告訴我有關日志記錄的任何最佳實踐。

根據您在此配置的日志級別:

levels: {
    info: 0,
    error: 1,
    warning: 2,
    audit: 3
},

溫斯頓表現完全正常。 也就是說,如果您將日志文件傳輸設置為偵聽日志級別error (1),它將捕獲該級別及更高級別的所有日志。 也許你打算像這樣構建你的關卡?

levels: {
    info: 0,
    warning: 1,
    error: 2,
    audit: 3
},

在此結構中,您的錯誤日志文件僅捕獲erroraudit日志。

至於你的顏色不起作用,你是否有機會使用cmd.exe 控制台顏色可能無法正常工作。 朋友們不要讓朋友在Windows上使用cmd.exe。 cmder是一個更好的選擇,特別是對於windows上的node.js開發:

http://gooseberrycreative.com/cmder/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM