log4js-узел в nodejs не входит в файл

Не эксперт по узлам, и я впервые использую log4js -node.

Я пытаюсь получить мои журналы ОШИБКИ и любые из моих журналов консоли для записи в файл log_file.log с log4js на сервере nodejs под управлением Express. Вот мой конфигурационный файл:`

{
  "replaceConsole": true,
  "appenders": [
  {
    "type": "file",
    "filename":"log_file.log",
    "maxLogSize":20480,
    "backups": 3,
    "category":"relative-logger"
  },
  {
  "type":"logLevelFilter",
  "level":"ERROR",
  "appender":{
    "type":"file",
    "filename":"log_file.log"
    }
  },
  {

    "appender": {
      "type": "smtp",
      "recipients": "myemail@gmail.com",
      "sender": "myemailadd@gmail.com",
      "sendInterval": 60,
      "transport": "SMTP",
      "SMTP": {
        "host": "localhost",
        "port": 25
      }
    }
  }]
}`

И вот как мне требуется приложение в моем файле app.js:

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

Я посылаю ручные ошибки в log4js с этим (я могу получить это, чтобы нормально войти в консоль, просто не могу записать log_file):

logger.error('A mandrill error occurred: ' + e.name + ' - ' + e.message);

И я надеюсь, что jog4js ловит нормальные сообщения об ошибках приложения.

Как я могу получить log4js для входа в log_file.log, прислать мне электронное письмо с этим журналом? Я установил nodemailer 0.7, к вашему сведению, для обработки SMTP.

2 ответа

Решение

Может быть, вы могли бы удалить "category":"relative-logger" в вашем файле appender.

Да, удалите "category":"lative-logger", это как-то блокирует передачу данных в ваш лог-файл. Или попробуйте что-то вроде этого:

// Setup Logging
log4js.configure({
    appenders: [
        { type: 'console' },
        { type: 'file', filename: '.\\logs\\PesaFastaArchiveData.log' }
    ]
});

Путь, конечно, путь Windows.

Другие вопросы по тегам