在 Linux 中,我知道如何在我创建的一个简单的 shell 脚本中向 /var/log/messages
文件写入一条简单的消息:
#!/bin/bash
logger "have fun!"
我想停止将消息扔到默认的 /var/log/messages
文件中,并创建我自己的文件。
我试过这个:
#!/bin/bash
logger "have more fun" > /var/log/mycustomlog
它仍然记录到 /var/log/messages
。它确实创建了 /var/log/mycustomlog
,但它是空的。
有人看到我遗漏了什么吗?
最佳答案
logger
记录到系统日志设施。如果您希望消息转到特定文件,您必须相应地修改系统日志配置。您可以添加这样一行:
local7.* -/var/log/mycustomlog
并重新启动系统日志。然后你可以这样记录:
logger -p local7.info "information message"
logger -p local7.err "error message"
消息将以正确的日志级别出现在所需的日志文件中。
无需更改系统日志配置,您可以像这样使用 logger
:
logger -s "foo bar" >> /var/log/mycustomlog
这将指示 logger
也将消息打印到 STDERR(除了将其记录到 syslog 之外),因此您可以将 STDERR 重定向到文件。然而,这完全没有意义,因为消息已经通过系统日志记录了(默认优先级 user.notice
)。
关于bash - 从 Bash 脚本写入自定义日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045946/