#node.js #winston
#node.js #winston
Вопрос:
У меня есть приложение узла, работающее на EC2 Redhat. Он ведет журнал в системный журнал, и журналы становятся слишком большими. Однако конфигурация не определила какой-либо транспорт системного журнала.
const logger = createLogger({
// change level if in dev environment versus production
level: env === "development" ? "verbose" : "info",
format: format.combine(
format.timestamp({
format: "YYYY-MM-DD HH:mm:ss",
}),
format.printf((info) => `${info.timestamp} ${info.level}: ${info.message}`)
),
transports: [
new transports.Console({
level: "info",
format: format.combine(
format.colorize(),
format.printf(
(info) => `${info.timestamp} ${info.level}: ${info.message}`
)
),
}),
dailyRotateFileTransport,
],
})
Есть ли способ отключить ведение журнала в системный журнал? В идеале из приложения node. Но если нет, то из самой конфигурации системного журнала.
Ответ №1:
Ваше приложение регистрируется на консоли. Я предполагаю, что приложение запускается не вручную, а через конфигурацию systemd и направляет stdout / stderr в journaldили куда угодно, куда он записывает выходные данные.
На самом деле это не вопрос Node / Winston. Вы можете либо изменить, куда ваше приложение регистрируется (переключиться на файловый транспорт с вращением журнала и прекратить сброс на консоль), уменьшить количество, которое вы регистрируете (фактически используйте debug и т. Д. Соответствующим Образом, Чтобы вывод не был слишком большим), либо взглянуть на то, как ваше приложение запускается впервое место и обдумайте это (вы хотите, чтобы systemd неуклюже передавал вам ведение журнала?)
Конечно, я предполагаю, что вы используете systemd, но консольный журнал не регистрируется в системном журнале, если выполнение приложения не направляет на него stdout / stderr, как это делает systemd.
Ответ №2:
Следующее, что я сделал, чтобы решить проблему с пространством на моем EC2.
Установите StandardOutput=null (ранее для него было установлено значение journaldпо умолчанию, а не из служебного файла), теперь для него установлено значение null.
сервер — Избегайте регистрации системного блока (службы) в журнале — Спросите Ubuntu https://askubuntu.com/questions/1200680/avoid-systemd-unit-service-to-be-logged-in-journal
linux — как отключить уведомления о запуске / остановке службы systemd — Unix и Linux Stack Exchange https://unix.stackexchange.com/questions/547790/how-to-disable-systemd-service-start-stop-notifications#comment1016825_547817