Linux中syslog的使用

logger 是一个shell 命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

日志的级别
facility:

auth       -用户授权
authpriv   -授权和安全
cron       -计划任务:at ,cron
daemon     -系统守护进程
kern       -与内核有关系的信息
lpr        -与打印服务有关的信息。
mail       -与电子邮件有关的信息
news       -来自新闻服务器的信息
syslog     -由 syslog 生成的信息
user       -用户的程序生成的信息,默认。
uucp       -由 uucp 生成的信息
local0~7   -来定义本地策略

level:

level定义消息的紧急程度。按严重程度由高到低顺序排列为:emerg =panic(该系统不可用)
alert    -需要立即采取的动作
crit     -临界状态
err      -错误状态。等同error
warning  -预警信息,等同warn
notice   -正常但是要注意
info     -正常消息
debug    -调试
none     -一般的信息

解决方法如下:

1.在/var/log目录下新建osalog文件夹:
touch osalog

2.编辑/etc/rsyslog.conf

vim /etc/rsyslog.conf

为了使local6的日志不记录在messages文件里,配置文件做如下修改:
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none			       /var/log/messages

中加入 ;local6.none
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local6.none       /var/log/messages


3.重启syslog服务
为了使local6所有级别的日志都记录在osalog里,配置文件做如下修改:
添加如下两行
#osa log
local6.info                                             /var/log/osalog


注意:
此处的local6.info是Linux系统中facility和level进行组合。

3.java中实现方法
1)通过Java调用Linux系统中logger命令向syslog中写日志:
ProcessBuilder pb = new ProcessBuilder("logger", errorString + "("
				+ className.getName() + ")", "-t", tagMessage, "-p",
				"local6.info ");


2)在log4j的配置文件中做如下配置:
log4j.appender.rsyslog = org.apache.log4j.net.SyslogAppender
log4j.appender.rsyslog.SyslogHost= localhost
log4j.appender.rsyslog.Facility = local6
log4j.appender.rsyslog.layout = org.apache.log4j.TTCCLayout

猜你喜欢

转载自bright2012.iteye.com/blog/1765226