欢迎来到天天文库
浏览记录
ID:57748643
大小:16.00 KB
页数:2页
时间:2020-09-02
《在Java服务端使用syslog作为日志系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在Java服务端使用syslog作为日志系统1.为什么要用syslog?使用syslog的最大理由就是可以集中处理日志,通常一个中小型的服务端10来台机器,如果日志集中到一台服务器处理起来就非常方便。其次,你可以很方便地利用syslog-ng这一类的服务器来对日志进行分流,在只需要跟踪某一种类型的日志时就比较方便。除此之外,用文件做日志在部署时总会出现目录不存在,目录没有权限的情况,而用syslog就没有这个问题。2.配置log4j把如下的一段加入log4j.properties即可把日志重定向到syslog(同时保留了终端,方便调试)log4
2、j.appender.SYSLOG=org.apache.log4j.net.SyslogAppenderlog4j.appender.SYSLOG.syslogHost=192.168.101.101log4j.appender.SYSLOG.facility=local3log4j.appender.SYSLOG.facilityPrinting=falselog4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayoutlog4j.appender.SYSLOG.layout.Conve
3、rsionPattern=%d{dd-MM-yyyyHH:mm:ss}%-5p(%C:%M:%L)-%m%nlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d{dd-MM-yyyyHH:mm:ss}%-5p(%C:%M:%L)-%m%nlog4j.rootLogger=
4、info,CONSOLE,SYSLOGsyslog的每一条记录有两个属性,一个是facility(可用于日志分类),另外一个是priority.facility就在上面的log4j.appender.SYSLOG.facility属性中配置,缺省值是user,对于服务器,我觉得在local0到local7之间选一个比较好,便于将日志分类。所有可用的facility可以参考log4j的文档。priority在我们用log.error,log.warn之类地命令进行日志操作时就已经指定了,syslog有8个优先级,log4j用了其中的5个,对应关系
5、如下(syslog的ALERT,CRIT,NOTICE3个等级未被使用)log4j.FATAL=0=syslog.EMERGlog4j.ERROR=3=syslog.ERRlog4j.WARN=4=syslog.WARNINGlog4j.INFO=6=syslog.INFOlog4j.DEBUG=7=syslog.DEBUGlog4j.appender.SYSLOG.syslogHost这个配置选项用于配置syslog机的IP,log4j.appender.SYSLOG.facilityPrinting设为true时会在每条日志前打印"loca
6、l3:",在日志没有分流时打开此选项可以用tail-f/var/log/syslog
7、greplocal3来只跟踪从你的服务器传来的日志。syslog服务端我一般使用syslog-ng来作为syslog服务器,安装后打开/etc/syslog-ng/syslog-ng.conf,把"udp()"这一行取消掉注释后重启syslog-ng服务即可正常使用,所有的日志会被输出到/var/log/syslog。(注意,如果日志服务器在外网,建议修改/etc/hosts.deny和/etc/hosts.allow,防止被人灌数据灌着玩)一般我们会把服务器
8、的日志定向一个单独的文件来进一步处理,最简单的情况就是把如下的一段追加到/etc/syslog-ng/syslog-ng.conf,然后重启syslog-ng服务。filterf_foo{facility(local3);};destinationdf_foo{file("/var/log/foo.log"owner("foo"));};log{source(s_all);filter(f_foo);filter(f_at_least_warn);destination(df_foo);};syslog-ng也支持把日志的输出重定向到你的程序,
9、具体可以参见syslog-ng的文档。最后你可能需要把你的日志文件加入logrotate的配置,这样方便日志滚动。
此文档下载收益归作者所有