日志的级别
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