2014-06-25 1 views
1

Я пытаюсь настроить winston в моем приложении express.js, но я чувствую, что все примеры, которые я нахожу, ориентированы только на приложения, которые имеют только один файл (server.js)Каков наилучший способ настройки winstonjs для использования в большом приложении expressjs?

Я все еще не понял как правильно настроить его для пользователя в нескольких файлах (контроллерах, моделях, ..).

Я столкнулся с тоннами ошибок, которые пытаются использовать альтернативные способы настройки (с глобальной переменной и с файлом, в котором я настраиваю регистратор, который импортируется файлами, где он используется, где ближайший я получил, с экспресс-winston я чувствовал, что это была просто ошибка и запрос логгера, и я не понимал, как регистрировать собственные журналы, поэтому я отказался от этого)

Но он никогда не работает правильно! Я не показывает какой-либо код, потому что я чувствую, что я получил не где еще, и да, я прочитал тонны документации ..

ответ

0

Я использую этот подход:

Структура проекта:

server.js 
another.js 
logger.js 

app.js, another.js и любой другой сценарий, где мне нужно войти, я просто требуют logger.js с помощью узла require

var logger = require("./logger"); 
logger.info("..."); 

и в Logge r.js, просто настройте вы winstonjs logger. Бонус точка: вы можете поменять 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;