Filter Conditions 過濾條件Rsyslog 提供4種不同類型的"過濾條件"1."傳統" severity and facility 基于選擇器2.基于屬性的過濾器3.表達式過濾器4.BSD-style blocks (not upward compatible) 不向上兼容Selectors 選擇器Selectors 是傳統的方式過濾syslog 消息,他們被保存在rsyslog的原始的語法里,因為那是眾所周知的,高效的 也兼容stock syslogd配置文件。如果你只是需要基于 PRiority and facility進行過濾, 你需要使用selector linesselector 本身有2部分組成,a facility and a priority,通過一個句號(".")隔開這兩部分都是不區分大小寫的,也可以指定為十進制數字,但不要這樣做facility 是下面關鍵字中一個: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (same as auth), syslog, user, uucp and local0 through local7. 關鍵字安全不應該被使用 標記只用于內部使用,因此不應該在應用中使用priority 是下面關鍵詞之一,ebug, info, notice, warning, warn (same as warning), err, error (same as err), crit, alert, emerg, panic (same as emerg).關鍵詞 error,warn和panic 是過時的 不能再被使用原始的BSD syslogd 的行為是所有指定的priority 和更高的消息是被記錄根據給定的action.除了以上提到的rsyslogd(8) 了解下面的擴展名一個星號("*") 代表所有的facilities 或者所有的priorities取決于它是用在哪里(之前還是之后).關鍵詞none 表示對于給定的facility 沒有優先級。你可以指定多個設備使用相同的優先級模式在一個語句使用逗號分隔多重選擇器 可能被指定用于一個單獨的action 使用;分隔。記住每個selector 在selector 字段你是可以重寫前面那個。Compare-Operations 比較操作:下面的compare-operations 是當前被支持的;contains檢查如果 字符串提供值是包含在屬性中,這必須是一個精確匹配,通配符是不支持的isequal比較提供的值和屬性內容, 那兩個值必須是準備的匹配。不同于包含是 包含搜索 值任何地方在屬性值里,比如:isequal 是很有用的對于字段 像syslogtag 或者FROMHOST,你知道確切的內容startwith:檢查如果值是準備找到的在屬性值得部分,比如,如果你搜索val:msg, startswith, "val"它會匹配如果消息包含"“values are in this message”但是不會匹配 如果消息包含"“There are values in this message” (這種情況 "contains"會匹配)請注意 "startwith"是比正則快regex 比較屬性通過提佛那個的POSIX BRE 正則表達式你可以使用 ! 在一個比較操作符前面 這樣操作的結果是相反的。比如,如果 msg 包含"This is an informative message”, 下面的例子不會匹配::msg, contains, "error"但是這個會匹配::msg, !contains, "error"使用 !可以有用的 如果你想要做一些特定的處理 但是排除一些特定的事件。你可以使用discard action *.* /var/log/allmsgs-including-informational.log:msg, contains, "informational" ~*.* /var/log/allmsgs-but-informational.log值部分:值是引用字符串,它支持一些轉義序列"/” - the quote character (e.g. “String with /”Quotes/””) // - the backslash character (e.g. “C://tmp”) 轉義字符總是以一個/開始, 額外的轉移序列可能在未來增加。可能,"msg" 是最突出的使用例子 基于過濾器。它實際上是消息文本,它可以過濾基于一些消息內容的:msg, contains, "ID-4711"這個過濾器 匹配當消息包含字符串"ID-4711"注意 comparison 是區分大小寫的,因此他不會匹配如果 “id-4711” :msg, regex, "fatal .* error"這個過濾器使用一個POSIX 正則表達式,它匹配當字符串包含 字符"fatal" 和 “error” 和任何其他在兩者之間比如( “fatal net error” and “fatal lib error” but not “fatal error” 基于表達式的過濾器: