本文详细讲述三种方式配置Log4j输出日志到syslog
Log4j基本配置介绍详见blog:http://www./enterprise-app/logger/log4j-demo/
syslog三种实现方式的比较
- Log4j自带的SyslogAppender,只能配置主机地址不能自定义端口
- 第三方syslog4j,可以配置协议、主机地址和端口,但是一种协议只能配置一个appender实例
- 自己实现的SyslogSunjAppender,可以同时配置主机地址和端口
[一]Log4j自带的SyslogAppender
只能配置接受syslog日志的主机地址,端口不可配置,使用默认的:514
1 | log4j.rootLogger=INFO,syslog |
2 | log4j.appender.syslog=org.apache.log4j.net.SyslogAppender |
3 | log4j.appender.syslog.SyslogHost=192.168.8.145 |
4 | log4j.appender.syslog.Facility=LOCAL1 |
5 | log4j.appender.syslog.header=true |
6 | log4j.appender.syslog.Threshold=INFO |
7 | log4j.appender.syslog.layout=org.apache.log4j.PatternLayout |
8 | log4j.appender.syslog.layout.ConversionPattern=%5p | %c{1}-%M [%d{yyyy-MM-dd HH:mm:ss}] - %m%n |
[二]第三方syslog4j
1 | log4j.rootLogger=INFO,syslog1 |
2 | log4j.appender.syslog1=org.productivity.java.syslog4j.impl.log4j.Syslog4jAppender |
3 | log4j.appender.syslog1.Facility=LOCAL0 |
4 | log4j.appender.syslog1.Protocol=udp |
5 | log4j.appender.syslog1.host=192.168.8.145 |
6 | log4j.appender.syslog1.Port=1514 |
7 | log4j.appender.syslog1.layout=org.apache.log4j.PatternLayout |
8 | log4j.appender.syslog1.layout.ConversionPattern=%5p | %c{1}-%M [%d{yyyy-MM-dd HH:mm:ss}] - %m%n |
[三]自己实现的SyslogSunjAppender
1 | log4j.rootLogger=INFO,syslog2 |
2 | log4j.appender.syslog2=com.log4j.michael.SyslogSunjAppender |
3 | log4j.appender.syslog2.SyslogHost=localhost |
4 | log4j.appender.syslog2.SyslogPort=1514 |
5 | log4j.appender.syslog2.Facility=LOCAL1 |
6 | log4j.appender.syslog2.header=true |
7 | log4j.appender.syslog2.Threshold=INFO |
8 | log4j.appender.syslog2.layout=org.apache.log4j.PatternLayout |
9 | log4j.appender.syslog2.layout.ConversionPattern=%5p | %c{1}-%M [%d{yyyy-MM-dd HH:mm:ss}] - %m%n |
测试接收日志可以借助第三方的syslog4j-0.9.46-bin.jar
windows cmd 下可运行:
java -cp .;syslog4j-0.9.46.jar org.productivity.java.syslog4j.server.SyslogServerMain -p 1514 udp
|