配置winstonjs以在大型expressjs应用程序中使用的最佳方法是什么?

时间:2014-06-25 21:45:17

标签: node.js logging express winston

我一直在尝试在我的express.js应用程序中配置winston,但我觉得我找到的所有示例都只专注于只有一个文件的应用程序(server.js)

我仍然不明白如何在多个文件(控制器,型号等)中为用户正确配置它。

我遇到了大量的错误,尝试了其他配置方式(使用全局变量和一个文件,我配置记录器,而不是由我最接近的文件所使用的文件导入,以及express-winston我觉得这只是一个错误和请求记录器,并且不明白如何记录自定义日志,所以我放弃了它)

但它永远不会正常工作!! 我没有显示任何代码,因为我觉得我还没有找到任何代码,是的,我已经阅读了大量的文档..

1 个答案:

答案 0 :(得分:0)

我正在使用这种方法:

项目结构:

server.js
another.js
logger.js

app.js,another.js和我需要记录的任何其他脚本,我只需要通过Node require

需要logger.js
var logger = require("./logger");
logger.info("...");

并在logger.js中,只需设置winstonjs记录器即可。加分点:您可以将winston换成具有相同API的任何其他记录器

logger.js

var winston = require("winston");

var logger = new winston.Logger({
    transports: [
        new winston.transports.Console({colorize: true, level: "info", prettyPrint: true}),
        new winston.transports.File({filename: "log.log"})
    ]
});

module.exports = logger;