原型:
#include <syslog.h>
void syslog(int priority, char *format, ...);
|
作用:向/var/log下面的某个日志文件添加一条新的日志记录。向哪个文件添加取决于priority。
priority为严重性与功能值的逻辑或值,严重性从高到低包括LOG_EMERG、LOG_ALERT、LOG_CRIT、LOG_ERR、LOG_WARNING、LOG_NOTICE、LOG_INFO、LOG_DEBUG等8项。功能值提供了这个log的作用,包括了LOG_CRON, LOG_USER, LOG_KERN, LOG_DAEMON, LOG_KERN等等。
*format为记录的字符串,遵循类似printf一般的格式,且其中的%m表示由strerr返回的errno值代表的信息。
一般使用openlog函数来定制日志,其原型是:
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
|
其中ident指定了要加在日志信息前的字符串,option代表了LOG_PID, LOG_CONS, LOG_NDELAY, LOG_PERROR中的零个到多个的逻辑或值。而facility则为log的严重性。
例如:
openlog("logit", LOG_PID, LOG_USER);
syslog( LOG_INFO, "Hey man\n");
closelog();
|
则往/var/log/messages产生一行信息形如:
Nov 29 23:47:46 ubuntu logit[18229]: Hey man
|
同时,shell提供了logger这个工具直接在shell脚本中写log:
logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ] |
阅读(1547) | 评论(0) | 转发(0) |