将log4j日志写入syslog
2007-10-15 21:59
232 查看
由于工作需要,这几天研究了一下怎样将log4j的日志写入到syslog中。syslogd是UNIX系统的一个常见的组件,用于执行系统日志记录活动。syslogd从一组日志源(如:/dev/log和/dev/klog)中读取数据,并按/etc/syslog.conf中的说明处理这些日志消息。通过syslog()调用,将应用程序日志消息记录到syslog中。
log4j是一款相当强大的开源日志工具,他能通过简单的配置将日志发送到文件、数据库、远程网络等各种地方。要在java程序中将log4j的日志信息发送到远程linux服务器的syslog中,也只需一点简单的配置就可以实现。
第一步,应该修改syslog的配置文件,因为syslog默认的配置是不能接收网络数据的,其配置文件syslog.conf文件通常在 /etc下:在文件中加入: *.* local5,local7.none;<tab>;<tab> /usr/adm/network.log 其次 启动syslog需使用:syslogd -r命令,否则不能接收网络数据,同时应注意关掉linux的防火墙。
第二步,配置log4j的properties文件,加入以下语句:
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.SyslogHost=syslog服务器IP
log4j.appender.syslog.Facility=LOCAL5
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%d [%t] %p %c - %m %n
通过以上配置,你在程序中使用log4j时,其日志信息将发送给syslog,具体保存在那里要看syslog.conf文件的
配置,如:*.info;mail.none;authpriv.none;cron.none /var/log/messages 此句表示,只将info等级的信息保存在
/var/log/messages文件中。(syslog.conf的详细配置网上有很多介绍,这里就不在讲了)
最后讲一点,如果在程序中修改了log4j配置,可以使用PropertyConfigurator.configureAndWatch("../sslsec/conf/log4j.properties", 1000);命令使log4j自动检查配置文件是否被修改,如修改了则自动使用新的配置而不必重启log4j。
log4j是一款相当强大的开源日志工具,他能通过简单的配置将日志发送到文件、数据库、远程网络等各种地方。要在java程序中将log4j的日志信息发送到远程linux服务器的syslog中,也只需一点简单的配置就可以实现。
第一步,应该修改syslog的配置文件,因为syslog默认的配置是不能接收网络数据的,其配置文件syslog.conf文件通常在 /etc下:在文件中加入: *.* local5,local7.none;<tab>;<tab> /usr/adm/network.log 其次 启动syslog需使用:syslogd -r命令,否则不能接收网络数据,同时应注意关掉linux的防火墙。
第二步,配置log4j的properties文件,加入以下语句:
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.SyslogHost=syslog服务器IP
log4j.appender.syslog.Facility=LOCAL5
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%d [%t] %p %c - %m %n
通过以上配置,你在程序中使用log4j时,其日志信息将发送给syslog,具体保存在那里要看syslog.conf文件的
配置,如:*.info;mail.none;authpriv.none;cron.none /var/log/messages 此句表示,只将info等级的信息保存在
/var/log/messages文件中。(syslog.conf的详细配置网上有很多介绍,这里就不在讲了)
最后讲一点,如果在程序中修改了log4j配置,可以使用PropertyConfigurator.configureAndWatch("../sslsec/conf/log4j.properties", 1000);命令使log4j自动检查配置文件是否被修改,如修改了则自动使用新的配置而不必重启log4j。
相关文章推荐
- 如何借助log4j把日志写入数据库中
- Log4j配置详解及不同的包(package)下的日志写入到不同的日志文件下
- log4j java版如何将日志写入数据库
- 用log4j将日志写入数据库
- Java中log4j控制写入日志开关
- [Perl]向syslog写入自定义日志(Sys::Syslog)
- log4j把日志写入数据库详解
- 把重要的业务日志异步批量写入数据库 LOG4J
- 将log4j日志写入Linux syslog
- 将Log4j日志实时写入Kafka
- Syslog-ng+Rsyslog收集日志:写入数据库MySQ, MS-SQL,SQLite, mSQL(六)
- log4j日志写入数据库
- 用syslog-ng将日志写入mysql数据库
- 10049---log4j 不同的包(package)下的日志写入到不同的日志文件下
- Java中log4j控制写入日志开关 推荐
- 利用POI对MS Excel进行读写(可以设置写入文件的样式),利用tm-extractor对Word进行读取操作并将信息用(log4j)日志信息显示出
- log4j日志写入redis扩展实现(log4j-redis-appender)
- druid 超时数据写入log4j日志~
- 使用Log4j将日志实时写入Flume
- log4j配置syslog记录日志