我有一个在EC2 Redhat上运行的节点应用程序。 它正在记录到syslog,并且日志太大。 但是,该配置尚未定义任何系统日志传输。
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的日志?理想情况下,来自节点应用程序。但是,如果不是,则来自syslog配置本身。
答案 0 :(得分:1)
您的应用正在登录控制台。我假设该应用程序不是手动运行,而是通过 systemd 配置及其将 stdout/stderr 定向到 journald 或将输出写入的任何位置。
这真的不是 Node/Winston 问题。您可以更改您的应用程序记录到的位置(切换到带有日志轮换的文件传输,并停止转储到控制台),减少您的记录量(实际使用调试等......适当地这样输出不会变得太大),或者先看看你的应用是如何运行的,然后再考虑一下(你想让 systemd 笨拙地为你处理日志吗?)
当然,我假设您正在使用 systemd,但控制台日志传输不会记录到 syslog,除非应用程序执行将 stdout/stderr 指向它,就像 systemd 所做的那样。
答案 1 :(得分:0)
以下是我为解决 EC2 上的空间问题所做的工作。
Set StandardOutput=null(以前它默认设置为 journald,而不是来自服务文件) 现在它被设置为空。
服务器 - 避免将 systemd 单元(服务)登录到日志中 - Ask Ubuntu https://askubuntu.com/questions/1200680/avoid-systemd-unit-service-to-be-logged-in-journal
linux - 如何禁用 systemd 服务启动/停止通知 https://unix.stackexchange.com/questions/547790/how-to-disable-systemd-service-start-stop-notifications#comment1016825_547817