nodejs自动维护winston日志
nodejs auto maintain winston log
我正在尝试将 winston 集成到 nodeJs Express 应用程序中。它有效,但我不知道如何自动维护它。我想要一些东西,例如当它达到 50000 行时,它会删除第一行,然后再添加新的行 space。这个想法是在没有像 cron 这样的东西的情况下做到这一点。可能吗?
这是我的测试代码:
//Winston logger
const { createLogger, format, transports } = require('winston');
const { combine, timestamp, label, printf } = format;
const winstonFormat = printf(info => {
return `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`;
});
const logger = createLogger({
level: 'info',
//maxsize:'10000', //It doesn't works for me
format: combine(
label({ label: config.environment }),
timestamp(),
winstonFormat
),
transports: [
new transports.File({ filename: 'error.log', level: 'error' }),
new transports.File({ filename: 'combined.log' })
]
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new transports.Console({
format: format.simple()
}));
}
您正在寻找日志轮换,因此谷歌搜索 "winston log rotation" 指向 https://github.com/winstonjs/winston-daily-rotate-file,这可能正是适合您的票。
我正在尝试将 winston 集成到 nodeJs Express 应用程序中。它有效,但我不知道如何自动维护它。我想要一些东西,例如当它达到 50000 行时,它会删除第一行,然后再添加新的行 space。这个想法是在没有像 cron 这样的东西的情况下做到这一点。可能吗?
这是我的测试代码:
//Winston logger
const { createLogger, format, transports } = require('winston');
const { combine, timestamp, label, printf } = format;
const winstonFormat = printf(info => {
return `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`;
});
const logger = createLogger({
level: 'info',
//maxsize:'10000', //It doesn't works for me
format: combine(
label({ label: config.environment }),
timestamp(),
winstonFormat
),
transports: [
new transports.File({ filename: 'error.log', level: 'error' }),
new transports.File({ filename: 'combined.log' })
]
});
if (process.env.NODE_ENV !== 'production') {
logger.add(new transports.Console({
format: format.simple()
}));
}
您正在寻找日志轮换,因此谷歌搜索 "winston log rotation" 指向 https://github.com/winstonjs/winston-daily-rotate-file,这可能正是适合您的票。