Node.js Winston Logger-排除登录到syslog以进行控制台传输
我有一个在EC2 Redhat上运行的节点应用程序。 它正在登录到syslog,日志变得太大了。 但是,该配置尚未定义任何系统日志传输Node.js Winston Logger-排除登录到syslog以进行控制台传输,node.js,winston,Node.js,Winston,我有一个在EC2 Redhat上运行的节点应用程序。 它正在登录到syslog,日志变得太大了。 但是,该配置尚未定义任何系统日志传输 const logger = createLogger({ // change level if in dev environment versus production level: env === "development" ? "verbose" : "info", format: f
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,
],
})
有没有办法禁用对syslog的日志记录?理想情况下,从节点应用程序。但如果没有,请从系统日志配置本身。您的应用程序正在登录到控制台。我假设应用程序不是手动运行的,而是通过systemd配置和它将stdout/stderr定向到journald或它将输出写入的任何地方运行的 这实际上不是一个Node/Winston问题。您可以更改应用程序的登录位置(切换到具有日志旋转的文件传输,并停止转储到控制台),减少您的日志量(实际使用调试等…适当地,这样输出就不会太大),或者首先查看应用程序的运行情况并仔细考虑(您是否希望systemd笨拙地为您提供日志?)
当然,我假设您使用的是systemd,但是控制台日志传输不会登录到syslog,除非应用程序执行将stdout/stderr指向它,就像systemd那样。以下是我为解决EC2上的空间问题所做的 Set StandardOutput=null(以前它默认设置为journald,而不是从服务文件) 现在它被设置为空 服务器-避免登录日志的systemd单元(服务)-询问Ubuntu linux-如何禁用systemd服务启动/停止通知-Unix和linux堆栈交换