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