Logging
rsyslog,排除日誌
我有一個自定義守護程序,它為 rsyslog 設施“local1”提供日誌,具有兩個安全級別 - “資訊”和“調試”。我需要將“資訊”日誌寫入 /var/log/info 並將“調試”日誌寫入 /var/log/debug。
我編輯了 rsyslog.conf
local1.*;local1.debug /var/log/info.log local1.debug /var/log/debug.log
當守護程序提供“資訊”日誌時,它執行良好,它寫入 info.log 並且 debug.log 為空。但是當我得到“調試”日誌時,它會寫入兩個文件。
幫助我從 info.log 中排除調試日誌。
;local1.=debug
不工作。我也試著寫local1.!debug /var/log/info.log
但仍然無法正常工作(在此配置資訊日誌中為空)
rsyslog 8.24.0-12
美分 7.4
更新
local1.info /var/log/info.log local1.debug;local1.info /var/log/debug.log
也不行,資訊轉到info.log,沒關係。但是在 debug.log 中有 info+debug,我不能從中排除資訊。
;local1.info
不工作
關鍵在手冊頁中:
原始 BSD syslogd 的行為是根據給定的操作記錄指定優先級和更高優先級的所有消息。Rsyslogd 的行為相同,但有一些擴展。
所以如果你想排除調試,只需聲明下一個最高優先級,即資訊:
local1.info /var/log/info.log
這意味著優先級資訊和更高優先級的所有消息都將轉到 /var/log/info.log。
對於調試日誌,解決方案也在手冊頁中:
您可以在每個優先級之前使用等號 (’=’) 來指定僅此單個優先級而不是上述任何優先級。
所以那行應該是
local1.=debug /var/log/debug.log
僅獲取調試消息。