Systemd
在 systemd 日誌中提取特定日誌的日誌消息?
我想知道是否可以使用 systemd 的日誌記錄來提取特定日誌的日誌消息。例如,當我在 C 中打開一個日誌時
openlog('slog', LOG_CONS | LOG_PID, LOG_LOCAL1)
,只提取記錄在 ’slog
’ 或LOCAL1
?下的消息當我執行
journalctl -u slog
or之類的操作journalctl -u LOG_LOCAL1
時,它只會告訴我日誌何時開始和結束,而不是實際的日誌消息。
是的,這是可能的,但是您將錯誤的開關傳遞給
journalctl
.根據journalctl(1)手冊頁:
- 要讀取具有給定係統日誌標識符(例如“foo”)的消息,請發出
journalctl -t foo
或journalctl SYSLOG_IDENTIFIER=foo
;- 要使用給定的 syslog 設施讀取消息,請發出
journalctl SYSLOG_FACILITY=1
(請注意,設施是使用它們的數值儲存和匹配的)。更一般地,系統日誌標識符和設施作為單獨的欄位(
SYSLOG_IDENTIFIER
和SYSLOG_FACILITY
)儲存在日誌中。如果您需要從 C API 訪問日誌,則必須直接在這些欄位上添加匹配項。該
journalctl -u
開關用於在擁有生成消息的程序的 systemd 單元的名稱上添加匹配項。所以這是錯誤的開關。