1

log4js 创建一个空文件。我已经查看了(很多)其他时候这种情况发生在 SO 上的人的答案,但似乎与我无关。这是我的代码:

// Configure logging.
require('log4js').configure('log4js.json');
var logger = require('log4js').getLogger();
logger.info('Starting Engine');

我的 log4js.json 文件非常标准:

{
"appenders": [
    {
        "type": "file",
        "filename": "main.log",
        "maxLogSize": 20480,
        "backups": 3,
        "category": "relative-logger"
    }
]
}

该项目是否有任何实际文档?感觉它是真正的 log4j 的一个可怜的表亲,他们只是在免费下载 log4j 的良好声誉。

编辑:

这是一个示例的几乎逐字逐句的副本,该示例(令人惊讶的惊喜)不起作用:

var log4js = require('log4js');
log4js.configure({
appenders: [
    { type: 'console' },
    { type: 'file', filename: "test.log", category: 'my_project' }
]
});
var logger  = log4js.getLogger('my_project');
//logger.setLevel('DEBUG');
logger.log('Why does node.js not have any decent logging frameworks??');

它返回以下内容:

return this.level <= otherLevel.level;
                                ^
TypeError: Cannot read property 'level' of undefined
at Level.isLessThanOrEqualTo (xxxx\node_modules\log4js\lib\levels.js:41:34)
at Logger.isLevelEnabled (xxxx\node_modules\log4js\lib\logger.js:63:21)
at Logger.log (xxxx\node_modules\log4js\lib\logger.js:56:12)
4

2 回答 2

3

看来您使用 log4js 不正确。对象记录器中没有称为 log 的函数。使用以下任何一种:

logger.trace('进入奶酪测试');

logger.debug('有奶酪。');

logger.info('奶酪是豪达奶酪。');

logger.warn('奶酪很臭。');

logger.error('奶酪 %s 太熟了!', "gouda");

logger.fatal('奶酪是李斯特菌的温床。');

于 2014-06-22T11:13:17.007 回答
0

所以。问题(我仍然不确定为什么)是这样的:

require('log4js').configure('log4js.json');
var logger = require('log4js').getLogger();

需要这样写:

var log4js = require('log4js');
log4js.configure('log4js.json');
var logger = log4js.getLogger();

聪明并在 log4js 上执行两次 require() 似乎会造成混乱。

于 2014-06-22T18:14:47.833 回答