前言
linux的日志系统一直以来都是在linux上开发必学的一部分内容。之前在学习openstack的时候,在对openstack组件的发生的错误进行调试时,老师就说要多看日志的报错,从这里找到相关线索再去修改配置文件。结果很多的报错都是通过组件对应的日志文件反映出来而修改成功的,因此使用好linux日志系统对了解linux编程有很大的帮助。
日志文件简述
其中日志一般都在/var/log目录下。该目录下有以下几个重要的的日志文件。
/var/log/maillog:记录邮件的往来信息,其实主要是记录sendmail与dovecot所产生的信息。
/var/log/dmesg:记录开机开始到现在的内核检测过程所产生的各项信息。如果内核编程的模块中使用printk(),将会把相关信息打印到这里。
/var/log/messages:系统发生的重要信息或者是错误信息都会记录在这个文件中,如果系统发生错误,这个文件就是需要查阅的文件之一。
/var/log/httpd:这个文件里面主要记录各种网络服务信息。
/var/log/cron:这个日志跟例行工作调度有关。即crontab有没有被执行,执行过程中有没有发生错误,在这个日子中均有体现。
打印日志文件
上述的这些日志都是系统进程打印出的log日志。我们怎么能打印出自己的log日志呢?
首先,我们要分清楚需求是什么,是通过内核打印出来?还是非内核应用中打印出来?
1.内核打印日志
相信很多使用过内核模块的朋友已经很清楚,在linux内核模块中编程的话,使用简单的 printk("helloworld");就能达