我正在我的nodejs代码中初始化bunyan记录器,如下所示:
var log = bunyan.createLogger({
name: 'myapp',
stream: process.stdout,
level: 'info'
});
这是来自https://www.npmjs.org/package/bunyan
的bunyan文档文档提到 默认情况下,日志输出为stdout且位于“info”级别。
我想知道的是,记录员不应该问我要记录的文件名。 记录发生在哪里?
答案 0 :(得分:3)
试试这个......
var Logger = require('bunyan');
var applogger = new Logger({
name: 'helloapi',
streams: [
{
level: 'info',
path: './log/applogging.log'
}
]
});
查看主页以获取进一步说明https://github.com/trentm/node-bunyan#streams-introduction
希望这有所帮助。 :)
答案 1 :(得分:1)
process.stdout is for Logging on Console.
如果要登录文件,则需要提供不同的流。
var log = bunyan.createLogger({
name: 'myapp',
streams: [
{
level: 'trace',
stream: process.stdout
},
{
level: 'warn',
path: './filename.log'
}
]
});
答案 2 :(得分:0)
安装bunyan logger的步骤:
npm install bunyan bunyan-rotating-file-stream --save
通过bunyan-rotating-file-stream模块,我们可以使用datetime设置日志文件。
手动创建日志文件夹。
var bunyan = require('bunyan');
var RotatingFileStream = require('bunyan-rotating-file-stream');
var applogger = new bunyan.createLogger({
name: 'project name',
streams: [{
stream: new RotatingFileStream({
type: 'rotating-file',
path: './logs/server-%Y%m%d.log',
period: '1d', // daily rotation
totalFiles: 2, // keep up to 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
template: 'server-%Y%m%d.log' //you can add. - _ before datestamp.
})
}]
});