acl 日志记录方式介绍
? ? ? ?从上面的函数声明可以看出,acl 的日志记录允许同时输出至多个日志管道中(最简单的方式就是直接写入本地磁盘文件:/tmp/test.log),同时更应看到,其中有三个奇怪的日志文件表达方式:UDP:IP:PORT, TCP:IP:PORT, UNIX:/xxx,其实这三种方式均是与 syslog-ng 相关,即分别表示:
? ? ? 1、以 UDP 方式发送日志至 syslog-ng;
? ? ? 2、以 TCP 方式发送日志至 syslog-ng;
? ? ? 3、以 UNIX 域套接字方式发送日志至 syslog-ng。
? ? ? 因为日志管理是一个非常复杂的过程,所以在 acl 除了提供最简单的日志文件记录外,更建议用户将日志输出至 syslog-ng 中(作者自己的项目也往往是这样做的)。
?
? ? ? 二、acl_msg.c/acl_msg.h
? ? ? 该日志库提供了更为高级的日志记录方法,不仅提供了灵活的日志记录函数,同时还允许用户注册自己的日志记录函数库,该日志库主要函数接口如下:
? ? ? ?上面是日志打开与关闭的函数,看上去算是相对简单。下面是几个日志记录的函数接口:
acl_debug_init("all:1");......acl_debug(100, 1)("%s(%d): log time: %ld", __FILE__, __LINE__, time(NULL));acl_debug(101, 1)("%s(%d): log time: %ld", __FILE__, __LINE__, time(NULL));acl_debug(101, 0)("%s(%d): log time: %ld", __FILE__, __LINE__, time(NULL));acl_debug(102, 1)("%s(%d): log time: %ld", __FILE__, __LINE__, time(NULL));acl_debug(103, 1)("%s(%d): log time: %ld", __FILE__, __LINE__, time(NULL));acl_debug(104, 1)("%s(%d): log time: %ld", __FILE__, __LINE__, time(NULL));acl_debug(105, 1)("%s(%d): log time: %ld", __FILE__, __LINE__, time(NULL)); ......?
? ? ? ?ok,有关日志 ?acl 日志记录函数就先写这些,使用者可以根据项目需要采用不同的日志记录方式。
?
? ? ? 参考:
? ? ? 本文地址:http://zsxxsz.iteye.com/blog/1893115
? ? ? 更多文章:http://zsxxsz.iteye.com/
? ? ? 下载:http://sourceforge.net/projects/acl/
? ? ? svn:svn checkout svn://svn.code.sf.net/p/acl/code/trunk acl-code
? ? ? QQ 群:242722074
?
?
?