syslogd和klogd syslogd
是Linux系统日志守护进程,负责接收、记录和分发系统日志,通常配合/etc/syslog.conf
使用。klogd
是Linux内核日志守护进程,符合收集和处理内核信息,通常配合syslogd
使用,但是也可以独立使用。
配置文件解析 配置文件的语法: facility.level action facility: 标识符
kern 内核信息,首先通过 klogd 传递; user 用户进程; mail 邮件; daemon 后台进程; authpriv 授权信息; syslog 系统日志; lpr 打印信息; news 新闻组信息; uucp 由uucp生成的信息 cron 计划和任务信息。 mark syslog 内部功能用于生成时间戳 local0~local7 与自定义程序使用 * 通配符代表除了 mark 以外的所有功能
level: 日志等级
syslog 级别如下:(按严重程度由高到低的顺序列出了所有可能的优先级。) emerg 或 panic 该系统不可用(最紧急消息) alert 需要立即被修改的条件(紧急消息) crit 阻止某些工具或子系统功能实现的错误条件(重要消息) err 阻止工具或某些子系统部分功能实现的错误条件(出错消息) warning 预警信息(警告消息) notice 具有重要性的普通条件(普通但重要的消息) info 提供信息的消息(通知性消息) debug 不包含函数条件或问题的其他信息(调试级-信息量最多) none 没有重要级,通常用于排错(不记录任何日志消息) * 所有级别,除了none
action: 动作,一般跟路径,代表保存到该文件
Liunx C使用syslog 在etc/syslog.conf
添加local0.* /var/log/test.log
#include <stdio.h> #include <syslog.h> int main (int argc, char *argv[]) { openlog(argv[0 ], LOG_PID|LOG_CONS, LOG_LOCAL0); syslog(LOG_INFO, "This is an informational message." ); syslog(LOG_WARNING, "This is a warning message." ); syslog(LOG_ERR, "This is an error message." ); closelog(); return 0 ; }