苹果记录器(ASL)忽略/etc/ASL.conf中的规则以获得特定的功能



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

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

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

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

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

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

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

感谢

在反复阅读asl.conf手册页后,我发现我可以使用"claim"命令来忽略我的特定规则的asl.conf基本配置文件

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

我遵循标签"claim"的描述,并将以下配置添加到我的配置文件中:

? [= com.bla.bla] file /var/log/my-log
? [= com.bla.bla] claim  

最新更新