Log4j基本配置先容詳見blog:http://sjsky.iteye.com/blog/856206
syslog三種實現方式的比較
- Log4j自帶的SyslogAppender,只能配置主機地址不能自定義端口
- 第三方syslog4j,可以配置協議、主機地址和端口,但是一種協議只能配置一個appender實例
- 自己實現的SyslogSunjAppender,可以同時配置主機地址和端口
[一]Log4j自帶的SyslogAppender
只能配置接受syslog日誌的主機地址,端口不可配置,使用默認的:514
log4j.rootLogger=INFO,syslog log4j.appender.syslog=org.apache.log4j.net.SyslogAppender log4j.appender.syslog.SyslogHost=192.168.8.145 log4j.appender.syslog.Facility=LOCAL1 log4j.appender.syslog.header=true log4j.appender.syslog.Threshold=INFO log4j.appender.syslog.layout=org.apache.log4j.PatternLayout log4j.appender.syslog.layout.ConversionPattern=%5p | %c{1}-%M [%d{yyyy-MM-dd HH:mm:ss}] - %m%n
[二]第三方syslog4j
- 官網先容:http://www.syslog4j.org/
- 提供jar包下載:syslog4j-0.9.46-bin.jar
- 可以配置協議、主機地址和端口,但是一種協議只能配置appender實例,假如同一種協議配置多個appender,後一個會覆蓋前面的配置信息。
log4j.rootLogger=INFO,syslog1 log4j.appender.syslog1=org.productivity.java.syslog4j.impl.log4j.Syslog4jAppender log4j.appender.syslog1.Facility=LOCAL0 log4j.appender.syslog1.Protocol=udp log4j.appender.syslog1.host=192.168.8.145 log4j.appender.syslog1.Port=1514 log4j.appender.syslog1.layout=org.apache.log4j.PatternLayout log4j.appender.syslog1.layout.ConversionPattern=%5p | %c{1}-%M [%d{yyyy-MM-dd HH:mm:ss}] - %m%n
[三]自己實現的SyslogSunjAppender
- 提供一個集成好的jar包下載:log4j-1.2.16_michael.jar
- 和log4j自帶的SyslogAppender相比,多了一個端口參數的配置:SyslogPort
- SyslogSunjAppender的源代碼下載:SyslogSunjAppender_src.zip
log4j.rootLogger=INFO,syslog2 log4j.appender.syslog2=com.log4j.michael.SyslogSunjAppender log4j.appender.syslog2.SyslogHost=localhost log4j.appender.syslog2.SyslogPort=1514 log4j.appender.syslog2.Facility=LOCAL1 log4j.appender.syslog2.header=true log4j.appender.syslog2.Threshold=INFO log4j.appender.syslog2.layout=org.apache.log4j.PatternLayout 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