关于node.js:Log4js javascript创建每日日志文件

Log4js javascript create daily log file

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

在Java中,我知道config log4j,但是在不知道有log4js的nodejs中。
谢谢大家的帮助:)


建议将winston用于nodejs。 它非常易于使用。

创建一个logger.js文件,并进行以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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});

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

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


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

1
2
3
4
5
6
7
8
log4js.configure({
  appenders: {
  everything: { type: 'dateFile', filename: 'all-the-logs.log' }
},
   categories: {
     default: { appenders: [ 'everything' ], level: 'debug' }
   }
});

This example will result in files being rolled every day. The initial
file will be all-the-logs.log, with the daily backups being
all-the-logs.log.2017-04-30, etc.


找不到用于日常滚动的文件,但对于大小,log4js的配置允许文件滚动。 注意maxLogSize,备份和压缩属性。 来自其文档的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    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