Log4j2常见使用示例及Syslog 详细

项目中有需要log4j2+ syslog的开发需求,说是开发,其实只是配置配置而已,这里主要讲linux环境中的配置

打开http://logging.apache.org/log4j/,点击左侧Download,我下载的是Apache Log4j 2 binary (zip),目前是2.0.2版本。解压后有30几个jar包,大部分是跟兼容性及移植性相关的可选组件,我们要用的是:

log4j-api-2.0.2.jar

log4j-core-2.0.2.jar

 

Log4j2.xml 基本配置这里就不赘述,只讲于syslog集成的部分;

在<Appenders> 中加入以下配置:

     <Syslog name="SYSLOG" host="localhost" port="514" protocol="UDP" facility="LOCAL3"/>

     <appender-ref ref="SYSLOG"/>

host是指你将要把日志写到的目标机器,可以是ip(本地ip或远程ip,远程ip在实际项目中很常见,有专门的日志服务器来存储日志),也可以使用主机名,如果是本地,还可以使用localhost或127.0.0.1

Port指定端口,默认514,参见/etc/rsyslog.conf(以Fedora系统为例,下同)。protocol指定传输协议,这里是UDP,facility是可选项,后面可以看到用法,具体关于facility的规则可以点击:http://logging.apache.org/log4j/2.x/manual/appenders.html#SyslogAppender

 

Syslog及Syslog-ng相关配置(Fedora)

在运行程序之前,需要修改

/etc/rsyslog.conf

把这两行前的#去掉,即取消注释:

#$ModLoad imudp

#$UDPServerRun 514

这里启用udp监听,514是默认监听端口,重启syslog:

service syslog restart       或者     

sudo systemctl restart rsyslog

查看是否启用

 sudo netstat -tulpn | grep rsyslog

大部分日志会默认写到/var/log/messages中,如果不想写到这个文件里,可以按下面修改,这样local3的日志就会写到app.log中。这里的local3即 log4j2.xml中facility的配置。 

*.info;mail.none;authpriv.none;cron.none;local3.none                /var/log/messages

新增一行

local3.*                                                                                 /var/log/local_sys.log

需要注意的几点,

1、syslog服务是否启动?

2、防火墙关闭或者端口号是否打开?

3、配置是否一致

如上配置无误,测试log有日志打印,去/var/log/下去查看配置日志是否输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coding-贝贝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值