查找系统日志消息的优先级/严重性

查找系统日志消息的优先级/严重性

有没有办法使用标准 UNIX 工具查找系统日志优先级或日志条目的严重性?

例如,我可以在日志中 grep 单词 error。但如果发生错误,并非所有日志都会显示单词“error”。最好能找到日志中所有以 err 严重性记录的条目。

显然,syslog 知道这些属性,但我不确定一旦将消息写入磁盘,这些相关的元数据是否会被删除,所以这可能是不可能的。

答案1

传统的 syslog 行为确实正如您所说,优先级是 syslog 消息头的一部分,在内部使用,并且只有时间戳、主机名和消息内容写入磁盘。

该消息可能包含或不包含严重程度的文本描述,并且在写入磁盘后无法检索它。

如果你切换到功能更丰富的替代方案,例如rsyslog你会获得更多配置选项,包括模板您可以在其中精确配置事件的存储方式,从而包括优先级。

答案2

默认情况下,信息不会写入磁盘。——检查 syslogd 文档了解如何更改这一点。

{Free,Net}BSD 的 syslogd 采用-v-vv参数来添加设施和优先级。

rsyslog 和 syslog-ng 允许您配置自定义消息模板。例如rsyslog 中的示例

$template precise,"%syslogpriority%,%syslogfacility%,%timegenerated%,%HOSTNAME%,%syslogtag%,%msg%\n"

相关内容