выводит логи в / var / log / syslog - PullRequest
0 голосов
/ 29 мая 2019

Наша традиционная система выводила на /var/log/syslog с модулем posix без какой-либо настройки. Но этот пакет posix больше не доступен в Node.js v10, нам пришлось использовать другой модуль журналирования.

Сейчас мы пытаемся использовать вместо него модуль winston, и наши настройки приведены ниже.

this.logger = winston.createLogger({
  levels: winston.config.syslog.levels,
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({
      filename: '/var/log/syslog'
    })
  ]
});

Но мы не можем получить какие-либо журналы в /var/log/syslog, возможно, это связано с проблемой разрешения. У кого-нибудь есть лучшее решение для этого? Мы хотели бы разрешить вывод логов в /var/log/syslog с легкими настройками.

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

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Скорее всего, у вас действительно есть проблема с разрешениями, поскольку / var / log / syslog управляется системными утилитами.

В любом случае, самое быстрое решение - использовать пакет npm winston-syslog ,это довольно легко настроить, если вы посмотрите на документацию

const winston = require('winston');

//
// Requiring `winston-syslog` will expose
// `winston.transports.Syslog`
//
require('winston-syslog').Syslog;

winston.add(new winston.transports.Syslog(options));
0 голосов
/ 29 мая 2019

На самом деле вы можете вывести журнал на консоль и перенаправить потоки stdout и stderr в файлы

...