之前一直以为log4j只能将日志写在本地,没想到它竟然也可以将日志写到远程服务器(须是LINUX服务器),现将自已的调查结果记录下来,以便以后查看。
1) 修改syslog的配置文件/etc/syslog.conf
在最后加上如下内容(注意中间的空白必须是 TAB 键,不能是空格,数量不限,切记!请参见下面给出的参考文档一)
local6.* /var/log/log4j.log
2) 编辑/etc/sysconfig/syslog。
在SYSLOGD_OPTIONS中追加"-r"。
# Options to syslogd # -m 0 disables 'MARK' messages. # -r enables logging from remote machines # -x disables DNS lookups on messages recieved with -r # See syslogd(8) for more details SYSLOGD_OPTIONS="-r -m 0"
3) 重新启动Syslog服务
/etc/init.d/syslog stop /etc/init.d/syslog start
4) 为了测试你的配置对不对,你可以用以下语句进行测试一下(就不解释该语句了)
# /usr/bin/logger –p local6.info “This space intentionally left blank”
5) 配置log4j
log4j.logger.REPORTER.OPERATIONHISTORY=INFO, A5 log4j.additivity.REPORTER.OPERATIONHISTORY=false log4j.appender.A5=org.apache.log4j.net.SyslogAppender log4j.appender.A5.SyslogHost=此处为你的服务器名或IP log4j.appender.A5.Facility=local6 log4j.appender.A5.layout=org.apache.log4j.PatternLayout log4j.appender.A5.layout.ConversionPattern=%m%n
参考文档:
http://allenzhang.iteye.com/blog/1198317
http://arthurln.iteye.com/blog/338180
http://www.precision-guesswork.com/sage-guide/syslog-overview.html