Linux日志管理之详解syslog(3)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-26 11:00 点击:

LOG_CONS:如果送到system logger时发生问题,直接写入系统终端;
LOG_NDELAY:立即开启连接,通常连接是在第一次写入消息时才打开的;
LOG_PERROR:将消息也同时送到stderr设备;
LOG_PID:将进程PID含入所有消息中。
第三个参数facility指明记录日志的程序的类型,它主要具有如下几类日志类型:
LOG_AUTH :安全/授权消息
LOG_AUTHPRIV:安全/授权消息
LOG_CRON:时间守护进程(cron和at)专用
LOG_DAEMON:其它系统守护进程
LOG_KERN:核心消息
LOG_LOCAL0到LOG_LOCAL7:系统保留
LOG_LPR:printer子系统
LOG_MAIL:mail子系统
LOG_NEWS:USENET新闻子系统
LOG_SYSLOG:syslogd进程内部所产生的消息
LOG_USER(缺省):一般使用者缺省使用消息
LOG_UUCP:UUCP子系统
LOG_FTP:FTP子系统使用
(2)syslog函数
syslog函数的声明如下:
void syslog(int priority, const char * message, ...);
第一个参数是消息的紧急级别priority,第二个参数是消息及其格式,之后是格式对应的参数,如同C语言里面printf输出函数一样使用,具体的格式这里就不再详述,它不是本书介绍的重点。
这里还需要详细介绍一下第一个参数priority,它是由severity level和facility组成的。Facility已经在上面介绍了,下面介绍一下severity level,也就是消息的重要级别,它主要包括:
LOG_EMERG:紧急状况
LOG_ALERT:高优先级问题,比如说数据库崩溃等,必须要立即采取反应行动
LOG_CRIT:重要状况发生,比如硬件故障
LOG_ERR:错误发生
LOG_WARNING:警告发生
LOG_NOTICE:一般状况,需要引起注意
LOG_INFO:信息状况
LOG_DEBUG:调试消息
在实际使用中,如果我们的程序要使用系统日志功能,只需要在程序启动时使用openlog函数来连接syslogd程序,后面随时用syslog函数写日志就行了。
(3)closelog函数
相对上述2个函数来说,该函数非常简单,其声明如下:
void closelog( void );
值得注意的是,虽然该函数的使用和调用情况非常简单,但是是必不可少的,因为在Linux系统中,打开的日志也是资源,如果只使用openlog函 数打开日志,而忘记使用closelog关闭日志的话,当打开的日志数量累积到一定程度,便会造成内存不足,从而引起系统问题。所以,提醒用户在使用中特 别注意。
2.一个实际的程序调用例子
下面给出一个使用上述几个函数写日志的例子,以供大家参考:
#include
#include
#include
int main(void)
{
int log_test;
/*打开日志*/
openlog("log_test ", LOG_PID|LOG_CONS, LOG_USER);
/*写日志*/
syslog(LOG_INFO, "PID information, pid=%d", getpid());
syslog(LOG_DEBUG,"debug message ");
/*关闭日志*/
closelog();
}

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • /etc/fstab 详解
  • nginx主主集群
  •  LVS-NAT和LVS-DR模式的实现详解
  •  RHCE考试之磁盘配额
  • 学习笔记:ACL详解
  •  LVM逻辑卷管理器
  • suse linux双网卡双网关配置
  •  Nginx主主负载均衡架构
  • ubuntu学习Mysql

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1