0

我有一个发送 asl 日志消息的 C/C++/Objective-C 项目。

asl.conf 中的默认配置将所有级别高于通知的日志消息路由到系统日志(请参阅下面的规则),我只想为我的特定设施取消此规则。

这意味着,我设施下的所有日志消息将仅路由到我的日志文件,而不是 system.log。

这是我的设施定义为 com.bla.bla asl.conf 的配置?[<= 级别通知] 文件 system.log

my_asl.conf
? [<= Level notice] [=Facility com.bla.bla] skip / ignore 

我试过跳过和忽略,但我没有做任何改变。唯一有效的是从 asl.conf 中删除规则,但我不想更改其他进程/设施的行为并修改一些默认规则。

我可以添加任何规则来禁止我的消息仅来自 system.log 吗?

谢谢

4

1 回答 1

0

在一遍又一遍地重新阅读 asl.conf 手册页后,我发现我可以使用“claim”命令来忽略我的特定规则的 asl.conf 基本配置文件

声明与“声明”操作关联的查询匹配的消息不会由主 ASL 配置文件 /etc/asl.conf 处理。虽然声明的消息不会被 /etc/asl.conf 处理,但它们并不是完全私有的。其他模块也可以声明消息,并且在某些情况下,两个或多个模块可能具有匹配相同消息的声明操作。此操作仅阻止 /etc/asl.conf 的处理。`claim' 动作后面可以跟关键字 'only'。在这种情况下,只有那些匹配“仅声明”查询的消息才会被模块中的后续规则处理。

我遵循标签“声明”的描述并将以下配置添加到我的配置文件中:

? [= com.bla.bla] file /var/log/my-log
? [= com.bla.bla] claim  
于 2016-01-27T08:08:24.077 回答