为什么log4js创建一个空文件但从不将消息放入其中?

时间:2014-06-09 01:21:34

标签: javascript logging log4js-node

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)

2 个答案:

答案 0 :(得分:3)

您似乎错误地使用了log4js。在对象记录器中没有名为log的函数。请使用以下任何一项:

logger.trace(&#39;进入奶酪测试&#39;);

logger.debug(&#39;得到奶酪。&#39;);

logger.info(&#39; Cheese是Gouda。&#39;);

logger.warn(&#39;奶酪很臭。&#39;);

logger.error(&#39; Cheese%s太成熟了!&#39;,&#34; gouda&#34;);

logger.fatal(&#39;奶酪是李斯特菌的滋生地。&#39;);

答案 1 :(得分: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()似乎会导致混乱。