javascript - 如何使用 Winston 库在 Node.js 中每天将日志分离到单独的文件中

标签 javascript node.js express logging winston

我有一个 Node.js 应用程序。我需要记录该程序中的每个事件,为此我使用 winston 库。我正在尝试为每一天创建一个日志文件。所有日志应逐日分开。我想将日常文件保存在桌面上。例如,我今天完成的请求(我的程序中的操作)将在我的桌面上保存为 18/10/2019.log。明天,当我再次执行一些请求(例如:获取、发布)时,应再次在桌面上记录为 19/10/2019.log。我不能这样做。有什么建议吗?

编辑:已解决!!

用winston-daily-rotate-file,就解决了。要使用该模块:

npm install winston-daily-rotate-file

代码:

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,
});

最佳答案

安装 winston 每日轮换

npm install Winston-daily-rotate-file

注意:检查兼容性 here首先

 var winston = require('winston');
  require('winston-daily-rotate-file');

  var fileRotateTransport = new (winston.transports.DailyRotateFile)({
    filename: '%DATE%.log',
    datePattern: 'DD/MM/YYYY',
    maxSize: '20m'
  });

  var logger = winston.createLogger({
    transports: [
      fileRotateTransport 
    ]
  });

查看 winston 日报rotate options根据您的要求进行配置。

关于javascript - 如何使用 Winston 库在 Node.js 中每天将日志分离到单独的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58444404/

相关文章:

javascript - 如何在同一 Controller 文件中引用另一个 put 操作方法?

node.js - 环境变量在 Node js 服务器中不起作用

javascript - 添加函数就是禁用js文件中的其他函数

javascript - 网络音频 API : Clicks on volume change with slider

javascript - AES 解密返回空字符串

javascript - 如何在 Node 中解析 HTTP 状态码?

node.js - 利用浏览器缓存外部文件

javascript - 如何从 Firebase 数据快照中获取 key ?

node.js - 如何获得 nodejs 应用程序的代码覆盖率,而无需在推荐的框架中编写测试用例?

javascript - 无法使用 Node.js 正确解析 Azure 函数内的 multipart/form-data