Logging

rsyslog,排除日誌

  • March 19, 2020

我有一個自定義守護程序,它為 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

僅獲取調試消息。

引用自:https://serverfault.com/questions/955772