我应该在哪个文件中初始化Express.js中的对象?

时间:2016-01-09 22:14:50

标签: node.js express

我是Node.js和Express的新手。

我想使用log4js但不确定我应该在哪个文件中配置记录器。

是否有常规的初始化文件?如果没有,我应该在哪里创建一个新的配置文件?

谢谢:)

答案(基于@jfriend00回答)

logger.js

'use strict';

var log4js = require('log4js');

log4js.configure({
  "appenders": [...]
});

var logger = log4js.getLogger("structuredLogger");

module.exports = logger

client.js

var logger = require('../../../../../config/logger.js');
logger.info('My message');

这个模块允许我:

  • 轻松配置log4js
  • 使用其他软件包轻松替换log4j。

1 个答案:

答案 0 :(得分:4)

需要初始化一次的模块的一个常见选项是创建自己的容器模块来执行初始化。然后,每个其他想要使用日志记录的模块都可以加载容器模块,如果尚未初始化,容器模块将初始化日志记录。

// mylog.js

// initialization code will only be called the first time the module is loaded
// after that, the module is cached by the `require()` infrastructure
var log4js = require('log4js');
log4js.configure({
  appenders: [
    { type: 'console' },
    { type: 'file', filename: 'logs/cheese.log', category: 'cheese' }
  ]
});

module.exports = log4js;

然后,每个希望使用通用配置日志记录的模块都可以在模块顶部附近执行此操作:

var log4js = require('./mylog.js');