node.js - 如何使用 Winston 库在 Node.js 中每天将 logrotate 日志记录到单独的文件中
问题描述
我有一个 nodejs 应用程序。我需要在这个程序中记录每个事件,为此我使用 winston 库。我正在尝试为每天创建一个日志文件。
所有的日志都应该每天分开。这些文件的名称应该是当天的日期。
例如,今天我打开我的程序并执行获取请求。此操作应保存为我的计算机上的文件(例如在我的桌面上),文件名应为 17/10/2019.log。有什么建议吗?
编辑:解决了!!
require('winston-daily-rotate-file');
const logDir= 'C://Users/Desktop/LogFiles';
var options = {
file: {
level:'info',
filename: path.resolve(`${logDir}/${new Date().getFullYear().toString()} - ${new Date().getMonth()+1}/%DATE%.log`),
datePattern: 'YYYY-MM-DD',
timestamp: new Date()
};
let logger = winston.createLogger({
level:'info',
format: winston.format.combine(
winston.format.printf(info => { return `${info.timestamp} || ${info.level} || Message: ${info.message}`; })
),
transports: [
new winston.transports.DailyRotateFile(options.file)
],
exitOnError: false,
});
解决方案
you could use a Transport for Winston, checkout https://github.com/winstonjs/winston-daily-rotate-file
it can do all what you're asking for and more.
推荐阅读
- javascript - 为什么运行 firebase 模拟器也会执行我的一项功能?
- api - 创建没有数据库和身份验证的 Rest API
- sql - 使用 patindex 从以下格式 M_D_YY 的字符串中提取日期
- azure - 带有 spa 和 webapi 的 azure ad b2c
- python - 如何在不使用拆分功能的情况下将字符串转换为列表
- matrix - Leetcode 1314 中的堆溢出
- angular - 如何重定向到Angular中的子路由?
- javascript - 需要接受表达式的字符串的正则表达式
- python - 在循环中增加行索引,直到处理数据帧中的所有行 - python
- ios - 基于平移手势翻译的滚动scrollview