4

我有一个项目 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 我不知道。感谢每个人的帮助:)

4

3 回答 3

4

建议将 winston 用于 nodejs。它很容易使用。

创建一个 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');
于 2017-08-03T09:24:12.503 回答
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 等。

于 2019-05-15T09:57:43.533 回答
1

没有找到每日滚动,但 log4js 的配置允许文件滚动。注意maxLogSize备份压缩属性。来自其文档的示例:

    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

于 2019-04-09T12:00:20.397 回答