2016-01-13 62 views
0

我有一個發送asl日誌消息的C/C++/Objective-C項目。蘋果記錄器(ASL)忽略特定設施的/etc/asl.conf中的規則

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?

感謝

+0

請教關於https://apple.stackexchange.com – trojanfoe

回答

2

重新閱讀asl.conf手冊頁一遍又一遍之後,我發現我可以用「要求」命令忽略asl.conf基本配置文件爲我的特定規則

聲明匹配與'claim'操作關聯的查詢的消息不會被主ASL配置文件/etc/asl.conf處理。雖然聲明的消息沒有經過/etc/asl.conf處理,但它們並不完全是私有的。其他模塊也可能聲明消息,並且在某些情況下,兩個或更多模塊可能具有匹配相同消息的聲明操作。此操作僅阻止/etc/asl.conf處理。 「聲明」操作後面可能跟着關鍵字'only'。在這種情況下,只有那些匹配'僅限索賠'查詢的郵件纔會被模塊中後續的 規則處理。

我跟着標籤「聲明」的描述,並增加了以下配置我的配置文件:

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