基本的 rsyslog 配置
Basic rsyslog configuration
我有程序记录到 Syslog,我想将这些消息拆分到单独的文件中。
我希望 MyApp
生成的所有消息都发送到 /var/log/my_app.log
,任何 warn
或更严重的消息也发送到 /var/log/my_app.err
。
我不希望邮件像现在这样在 /var/log/syslog
中结束。
我创建了一个新的 rsyslog conf 文件 /etc/rsyslog.d/10-my_app.conf
,其中我有:
if $programname == 'MyApp'
then
{
if $pri <= 4
then
{
/var/log/my_app.err
}
/var/log/my_app.log
& stop
}
但它只是部分起作用。所有消息都在 my_app.log
中结束,一半的消息仍然出现在 syslog
中,而 my_app.err
中什么也没有出现
我找到了解决方案:
if $programname == 'MyApp'
then
{
*.warning /var/log/my_app.err
*.* /var/log/my_app.log
& stop
}
一半的问题是我的配置文件被加载之后另一个文件在我有机会删除它们之前将我的行记录到/var/log/syslog
,所以我需要更改一些文件名来解决这个问题。
我有程序记录到 Syslog,我想将这些消息拆分到单独的文件中。
我希望 MyApp
生成的所有消息都发送到 /var/log/my_app.log
,任何 warn
或更严重的消息也发送到 /var/log/my_app.err
。
我不希望邮件像现在这样在 /var/log/syslog
中结束。
我创建了一个新的 rsyslog conf 文件 /etc/rsyslog.d/10-my_app.conf
,其中我有:
if $programname == 'MyApp'
then
{
if $pri <= 4
then
{
/var/log/my_app.err
}
/var/log/my_app.log
& stop
}
但它只是部分起作用。所有消息都在 my_app.log
中结束,一半的消息仍然出现在 syslog
中,而 my_app.err
我找到了解决方案:
if $programname == 'MyApp'
then
{
*.warning /var/log/my_app.err
*.* /var/log/my_app.log
& stop
}
一半的问题是我的配置文件被加载之后另一个文件在我有机会删除它们之前将我的行记录到/var/log/syslog
,所以我需要更改一些文件名来解决这个问题。