学习啦>学习电脑>操作系统>Linux教程>

Linux操作系统中日志系统功能详解(2)

春健分享

  这个配置文件格式是:每一行都定义一个子系统产生的哪些级别的日志记录到什么位置

  facility.priority action

  Facility:日志来源

  auth #认证子系统产生的

  authpriv #权限授权子系统产生的

  cron #任务计划子系统产生的

  daemon #守护进程子系统产生的

  kern #内核子系统产生的,定义klogd的记录内容

  lpr #打印子系统产生的

  mail #邮件子系统产生的

  mark #标记子系统产生的

  news #新闻子系统产生的

  security #安全子系统产生的,与auth来源类似

  syslog #定义syslog自己的要记录的

  user #用户子系统所产生的的

  uucp #Unix to unix cp子系统所产生的

  local0-->local7 #用户自定义使用

  * #所有来源

  Priority(log level)日志级别:(级别越低记录的越详细)

  debug #程序或系统的调试信息(记录非常详细,一般只在系统无法启动,排除错误时使用)

  info #一般信息

  notice #不影响系统正常功能,但需要注意的信息

  warning/warn #可能影响系统功能,需要提醒用户注意的重要事件;这种信息可能会引起部分功能的运行

  err/error #错误信息,已经影响系统部分功能;蓝色警报

  crit #比较严重的信息;橙色警报

  alert #必须马上处理的信息;红色警报

  emerg/panic #导致系统不可用的信息;一般这一刻出现,下一刻系统就会down掉

  * #所有日志级别,类似debug

  none #和*相反,表示哪个级别都没有

  Action(动作)指定日志记录的位置:

  系统上的绝对路径 #普通文件,如/var/log/***

  | #通过管道送给其他命令处理

  终端 #显示在哪个终端(物理终端,虚拟终端,伪终端等等)

  @HOST #远程主机;产生的日志信息,自己不记录,而传送给其他主机记录,一般用于日志服务器,可以增强当前服务器的安全;默认情况下只为自己记录日志信息

  【如果要使得我们的服务器称为日志服务器,只需在“/etc/sysconfig/syslog”文件中的"SYSLOGD_OPTIONS="-r -m 0""这一行中添加一个“-r”选项,重新启动服务即可开启日志服务器功能】

  用户 #产生的日志信息都发送给某个用户,如root

  * #登录到系统上的所有用户,一般emerg级别的日志是这样定义的

  syslog日志服务属性定义实例:

  mail.info /var/log/maillog #将mail相关的级别为info及info以上级别的信息记录到/var/log/maillog文件中

  auth.=info @10.0.0.1 #将auth相关的info级别的信息记录到10.0.0.1主机上,前提是10.0.0.1主机能够接收到其他主机发来的日志信息(此时只记录info级别)

  user.!=error #记录与user相关的,但不记录error级别的信息,只记录其他所有级别

  user.!error #与user.error相反,此时只记录比error级别低的日志信息

  *.info #记录所有可能产生日志子系统的info级别及其以上级别的日志信息

  mail.* #记录与mail所产生的所有级别的日志信息

  *.* #记录所有日志信息

  cron.info;mail.info #记录cron相关的info及以上级别的日志信息和mail相关的info和以上级别的日志信息,多个日志来源之间以“;”分号隔开

  cron,mail.info #和上边是一个意思,如果两个日志来源的记录级别相同,可以缩写,来源之间以“,”逗号隔开

  mail.*;mail.!=info #记录与mail相关的所有级别的日志信息,但不包括info级别的所有信息

  Syslog的默认配置文件定义解释:

  # cat /etc/syslog.conf

  *.info;mail.none;authpriv.none;cron.none /var/log/messages #所有可能产生日志信息的子系统的info级别及以上级别的日志信息,都保存在messages文件中,但是不包括mail,authpriv,cron子系统的

  authpriv.* /var/log/secure #所有用户授权的日志信息都记录到secure文件中

  mail.* -/var/log/maillog #所有邮件子系统产生的日志信息都异步保存在maillog文件中,“-”表示异步写入,其他日志信息都要同步写入

  cron.* /var/log/cron #所有任务计划的日志信息都记录到cron文件中

  *.emerg * #无论系统上哪个程序产生emerg级别的信息,都立即通知给系统上的所有用户,马上就要down机了

  uucp,new.crit /var/log/spooler #来自uucp和new子系统的crit级别的信息都保存在spooler文件中

  local7.* /var/log/boot.log #自己定义的日志记录,此处系统默认定义的是系统引导信息,保存在boot.log文件中;但此处并没有���义谁向这个文件中填写,所以这个文件是空文件,我们需要在其他文件中定义这个日志信息要发送到local7中,才会写到boot.log文件中,一般意义不大

  这个文件保存之后日志系统配置文件并不会立即生效,此时如果我们使用“service syslog restart”命令来重启日志服务,可能会使得其他一些正在记录日志信息的子系统不能完整的记录,所以我们一般使用“service syslog reload”来重读配置文件,并生效,相当与发送1号信号。

看过“ Linux操作系统中日志系统功能详解 ”的人还看了:

1.Linux系统查看当前时间的命令

2.Linux中如何使用find命令进行日志定期转移

3.linux怎么查看内存

4.RedHat如何安装log4cxx日志库

5.Tomcat怎么关闭日志输出

749424