正如我在博客中看到的许多日志,我发现bunyan适合记录日志,但它有一个问题,它不能根据他们的级别记录到文件中。
下面是我正在遵循的代码结构
const RotatingFileStream = require('bunyan-rotating-file-stream');
const bunyan = require('bunyan');
var log = bunyan.createLogger({
name: 'ShotPitch',
streams: [{
name: 'info',
level: 'info',
stream: new RotatingFileStream({
path: 'info.%d-%b-%y.log',
period: '1d', // daily rotation
totalFiles: 10, // keep 10 back copies
rotateExisting: true, // Give ourselves a clean file when we start up, based on period
threshold: '10m', // Rotate log files larger than 10 megabytes
totalSize: '20m', // Don't keep more than 20mb of archived log files
gzip: true // Compress the archive log files to save space
})
}, {
name: 'error',
level: 'error',
stream: new RotatingFileStream({
path: 'error.%d-%b-%y.log',
period: '1d', // daily rotation
totalFiles: 10, // keep 10 back copies
rotateExisting: true, // Give ourselves a clean file when we start up, based on period
threshold: '10m', // Rotate log files larger than 10 megabytes
totalSize: '20m', // Don't keep more than 20mb of archived log files
gzip: true // Compress the archive log files to save space
})
}]
});
log.info('Hello World');
log.error('Hello World error log');o/p: info.log:
{"name":"ShotPitch","pid":7621,"level":30,"msg":"Hello World","time":"2017-09-03T18:29:04.181Z","v":0}
{"name":"ShotPitch","pid":7621,"level":50,"msg":"Hello World","time":"2017-09-03T18:29:04.181Z","v":0}
o/p: error.log:
{"name":"ShotPitch","pid":7621,"level":50,"msg":"Hello World","time":"2017-09-03T18:29:04.181Z","v":0}
结论:
info.log同时显示信息和错误日志
error.log仅显示错误日志
我只想在info.log中的信息日志,但无法做到。有人能帮上忙吗?另外,如果告诉我如何更改为level:"info“而不是level:30
发布于 2017-09-04 03:43:57
配置bunyan时需要指定循环文件流的日志级别。
默认情况下,日志输出为stdout,级别为"info“。
将记录器实例(或其流之一)设置为特定级别意味着记录该级别或更高级别的所有日志记录。例如,设置为" info“级别的记录器将记录info及以上级别的记录(warn、error、fatal)。
因此,错误日志也被收集到信息日志中。
发布于 2018-03-16 11:19:03
我遇到了同样的问题,最后我创建了两个变量,如下所示:
var debugLog = bunyan.createLogger({
name: 'general',
streams: [
{
level: 'debug',
path: './debug.log'
}]
});
var errLog = bunyan.createLogger({
name: 'general',
streams: [
{
level: 'error',
path: './error.log'
}]
});
debugLog.info('hello world');
errLog.error('error');那么日志将放在不同的日志文件中。
https://stackoverflow.com/questions/46026933
复制相似问题