Node.js 在节点js中使用log4js在文件中写入日志

Node.js 在节点js中使用log4js在文件中写入日志,node.js,logging,log4js-node,Node.js,Logging,Log4js Node,我的代码是: log4js.loadAppender('file'); log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese'); logger.setLevel('DEBUG'); logger.trace('Entering cheese testing'); logger.debug('Got cheese.'); logger.info('Cheese is Gouda.'); logger.warn(

我的代码是:

log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');
logger.setLevel('DEBUG');

logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');
它正在创建一个名为“cheese”的文件,但里面什么都没有。
如何在其中写入内容?

此解决方案可帮助您在文件夹日志中创建日志文件夹和三个文件error.log、debug.log和info.log以及日志。为我工作。谢谢

var log4js = require('log4js'); // include log4js

log4js.configure({ // configure to use all types in different files.
    appenders: [
        {   type: 'file',
            filename: "/logs/error.log", // specify the path where u want logs folder error.log
            category: 'error',
            maxLogSize: 20480,
            backups: 10
        },
        {   type: "file",
            filename: "/logs/info.log", // specify the path where u want logs folder info.log
            category: 'info',
            maxLogSize: 20480,
            backups: 10
        },
        {   type: 'file',
            filename: "/logs/debug.log", // specify the path where u want logs folder debug.log
            category: 'debug',
            maxLogSize: 20480,
            backups: 10
        }
    ]
});

var loggerinfo = log4js.getLogger('info'); // initialize the var to use.
var loggererror = log4js.getLogger('error'); // initialize the var to use.
var loggerdebug = log4js.getLogger('debug'); // initialize the var to use.

loggerinfo.info('This is Information Logger');
loggererror.info('This is Error Logger');
loggerdebug.info('This is Debugger');

在上述代码中,您缺少记录器声明: 添加行
var logger=log4js.getLogger('cheese')

整个代码块如下所示:

var log4js = require('log4js');

log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');

var logger = log4js.getLogger('cheese');

logger.setLevel('DEBUG');
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');

版本2.x.

您需要这样做:

var log4js = require('log4js');
log4js.configure({
  appenders: { 'file': { type: 'file', filename: 'logs/cheese.log' } },
  categories: { default: { appenders: ['file'], level: 'debug' } }
});

var logger = log4js.getLogger('cheese');

logger.setLevel('DEBUG');
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');

如果希望根据日志消息中的属性(如上面的文件名)动态创建文件,请查看。

Log4js具有多文件配置功能。看

然后开始登录文件
logs/xyz.log

const xyzlog = log4js.getLogger('tofile.xyz');
xyzlog.info('Hello!');

你能理解吗?我使用了log4js v2.0.1,它返回TypeError:log4js.loadAppender不是functionTypeError:logger.setLevel不是函数。通过删除logger.setLevel('DEBUG');线路对我没问题。@slorenzo你的链接断了。你能更新一下吗?
const xyzlog = log4js.getLogger('tofile.xyz');
xyzlog.info('Hello!');