syslog机制
在开发服务器程序时,server一般是守护进程,脱离了控制终端,一些输出信息和调试 信息利用日志文件去记录,Linux提供常用的syslog机制,这里介绍下syslog基本使用,等 同学走上工作岗位后根据项目需求可以进一步去研究syslog.conf配置文件。
unix使用syslog机制,ubuntu和redhat等linux现在使用rsyslog,是syslog的增强版。
1.配置rsyslog
sudo vi /etc/rsyslog.conf
添加下面这行配置
# mod by itcast
local2.info /var/log/itcast_server.log
# itcast en
2.重启服务生效,并创建/var/log/itcast_server.log
sudo /etc/init.d/rsyslog restart
itcast@ubuntu:~$ ls -l /var/log/itcast_server.log
-rw-r----- 1 syslog adm 0 11月 22 07:47 /var/log/itcast_server.log
3.查看/var/log/itcast_server.log 此刻为空文件
itcast@ubuntu:~$ cat /var/log/itcast_server.log
4.编写测试文件,并编译运行
#include <syslog.h> #include <string.h> #include <stdio.h> int main(void)
{
int log_test;
/*打开日志*/
openlog("itcast.itcast ", LOG_PID|LOG_CONS, LOG_LOCAL2); /*写日志*/
syslog(LOG_INFO, "PID information, pid=%d", getpid()); /*关闭日志*/
closelog();
return 0;
}
5.查看日至文件/var/log/itcast_server.log
itcast@ubuntu:~/test$ cat /var/log/itcast_server.log
Nov 22 07:51:06 ubuntu itcast.itcast [5326]: PID information, pid=5326
6.ubuntu默认配置的rsyslog会在/var/log/syslog记录所有的syslog输出,包括在/var/ log/itcast_server.log已经记录的信息
itcast@ubuntu:~/test$ cat /var/log/syslog
212 第16章 syslog机制
#include <syslog.h> #include <string.h> #include <stdio.h> int main(void)
{
int log_test;
/*打开日志*/
openlog("itcast.itcast ", LOG_PID|LOG_CONS, LOG_LOCAL2); /*写日志*/
syslog(LOG_INFO, "PID information, pid=%d", getpid()); /*关闭日志*/
closelog();
return 0;
}
5.查看日至文件/var/log/itcast_server.log
6.ubuntu默认配置的rsyslog会在/var/log/syslog记录所有的syslog输出,包括在/var/ log/itcast_server.log已经记录的信息
itcast@ubuntu:~/test$ cat /var/log/itcast_server.log
Nov 22 07:51:06 ubuntu itcast.itcast [5326]: PID information, pid=5326