Chinaunix首页 | 论坛 | 博客
  • 博客访问: 249728
  • 博文数量: 51
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 575
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-22 13:49
文章分类
文章存档

2009年(1)

2008年(13)

2007年(7)

2006年(30)

我的朋友

分类:

2006-11-30 00:04:42

原型:

#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) |
给主人留下些什么吧!~~