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;
我正在使用休闲代码登录文件。
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
},
Winston 的行为完全符合预期。也就是说,如果您将日志文件传输设置为侦听日志级别 error
(1),它将捕获该级别 和更高级别 的所有日志。也许您打算像这样构建您的关卡?
levels: {
info: 0,
warning: 1,
error: 2,
audit: 3
},
在此结构中,您的错误日志文件只会捕获 error
和 audit
日志。
至于你的颜色不起作用,你有没有使用 cmd.exe
?控制台颜色可能无法正常工作。朋友不要让朋友在 windows 上使用 cmd.exe。 cmder
是一个更好的选择,特别是对于 node.js 在 windows 上的开发:
我决定使用 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;
我正在使用休闲代码登录文件。
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
},
Winston 的行为完全符合预期。也就是说,如果您将日志文件传输设置为侦听日志级别 error
(1),它将捕获该级别 和更高级别 的所有日志。也许您打算像这样构建您的关卡?
levels: {
info: 0,
warning: 1,
error: 2,
audit: 3
},
在此结构中,您的错误日志文件只会捕获 error
和 audit
日志。
至于你的颜色不起作用,你有没有使用 cmd.exe
?控制台颜色可能无法正常工作。朋友不要让朋友在 windows 上使用 cmd.exe。 cmder
是一个更好的选择,特别是对于 node.js 在 windows 上的开发: