【问题标题】:Log4js javascript create daily log fileLog4js javascript 创建每日日志文件
【发布时间】:2018-01-10 18:42:00
【问题描述】:

我有一个项目 nodejs 并使用 log4js 来写日志。 我想在开始新日期时创建新文件日志。
示例:
daily.2017_07_31.log
daily.2017_08_01.log
daily.2017_08_02.log
daily.2017_08_03.log

在java中,我知道config log4j,但在nodejs和log4js中我不知道。 感谢每个人的帮助:)

【问题讨论】:

    标签: node.js express npm log4js-node


    【解决方案1】:

    对于 nodejs,推荐使用 winston。它很容易使用。

    创建一个 logger.js 文件并进行此配置 '

    require('winston-daily-rotate-file');
    
    var winston = require('winston');
    
    winston.loggers.add('logger', {
        transports: [
    new (winston.transports.Console)(
                {
                    level: config.debugLogLevel,
                    colorize: true
                }),
    
            //new files will be generated each day, the date patter indicates the frequency of creating a file.
            new winston.transports.DailyRotateFile({
                    name: 'debug-log',
                    filename: '<log file name>',
                    level: '<level>',
                    prepend: true,
                    datePattern: '<pattern>',
                    maxFiles: <max file>
                }
            ),
            new (winston.transports.DailyRotateFile)({
                name: 'error-log',
                filename: '<log file name>',
                    level: '<level>',
                    prepend: true,
                    datePattern: '<pattern>',
                    maxFiles: <max file>
            })
        ]
    });
    
    var logger = winston.loggers.get('logger');
    Object.defineProperty(exports, "LOG", {value: logger});
    

    现在你可以在任何地方使用它

    var log = require('./logger.js').LOG
    log.error('hello');
    

    【讨论】:

    • 最有趣的部分是,您还可以将电子邮件配置为传输。只需进行一些配置,所有日志都可以通过电子邮件发送给您。
    • 第一个。感谢您的帮助。我曾使用搜索关键字 winston log 并得到答案。但我有依赖问题:)。在文件 package.json 我添加行 "winston-daily-rotate-file": "~1.4.6" 但是当我运行它时,出现错误 Error: Cannot find module 'winston'跨度>
    • 嗨@Manish Kumanwat。我试试你的回答。但它不起作用,它没有显示任何错误并且没有创建文件日志?你能帮我吗
    • @NguyễnPhúc 您能否详细介绍一下您的代码中的配置?
    【解决方案2】:

    见:https://github.com/log4js-node/log4js-node/blob/master/docs/dateFile.md

    log4js.configure({
      appenders: {
      everything: { type: 'dateFile', filename: 'all-the-logs.log' }
    },
       categories: {
         default: { appenders: [ 'everything' ], level: 'debug' }
       }
    });
    

    此示例将导致文件每天滚动。最初的 文件将是 all-the-logs.log,每日备份是 all-the-logs.log.2017-04-30 等

    【讨论】:

      【解决方案3】:

      没有找到每日滚动,但 log4js 的配置允许文件滚动。注意 ma​​xLogSizebackupscompress 属性。来自其文档的示例:

          log4js.configure({
              appenders: {
                  everything: { 
                      type: 'file', 
                      filename: 'all-the-logs.log', 
                      maxLogSize: 10485760, 
                      backups: 3, 
                      compress: true 
                  }
              },
              categories: {
                  default: { appenders: [ 'everything' ], level: 'debug'}
              }
          });
      

      https://github.com/log4js-node/log4js-node/blob/master/docs/file.md

      【讨论】:

        猜你喜欢
        • 2018-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多