1. 需求
根据要求,将weblogic日志输出改为log4j模式输出,同时将日志输出到syslog监控日志中。本文以weblogic12.2.1.4版本为例。
2. 配置过程
2.1. 依赖包准备
配置weblogic日志修改为log4j模式输出,需要依赖两个jar的包,一个为log4j-1.2.17.jar,一个为wllog4j.jar。
wllog4j.jar在weblogic的server路径下可以找到,直接拷贝即可,具体路径为:$WL_HOME/server/lib;
log4j-1.2.17.jar需要自行下载,下载地址为https://logging.apache.org/log4j/1.2/download.html
将wllog4j.jar和log4j-1.2.17.jar放在$domain_home的lib下
下面是测试环境路径以供参考
2.2. 配置文件准备
在$domain_home路径下创建log4j.properties文件,文件内容如下:
log4j.rootLogger=INFO,syslog
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.Threshold=DEBUG
log4j.appender.syslog.Facility=LOCAL4
log4j.appender.syslog.FacilityPrinting=false
log4j.appender.syslog.Header=true
log4j.appender.syslog.SyslogHost=localhost
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=[%p] %c:%L - %m%n
说明:
log4j.appender.syslog.Facility:用于配置的facility变量名;(该值与syslog.conf配置中保持一致)
log4j.appender.syslog.SyslogHost:接收日志的主机地址
log4j.appender.syslog.Threshold:日志输出的阀值,即最低级别,建议使用DEBUG。
log4j.appender.syslog.header:打印日志信息时前面是否带上应用程序所在服务器的信息 log4j.appender.FileLog.layout.ConversionPattern:输出格式,可自定义
下面是测试环境配置信息以供参考
log4j.properties文件内容
syslog.conf文件中新增内容(若使用linux系统自带syslog进行收集则配置文件为rsyslog.conf,路径为/etc)
注意:若原syslog.conf文件以配置好路径则只需要在log4j.properties中写入对应的loacl配置即可,若为在syslog.conf文件中新增内容,则需要重启syslog.server服务。
2.3. 控制台配置
登入控制台,在控制台中选择要输出syslog日志的节点。以AdminServer为例,点击进入AdminServer节点配置,在弹出中选择“配置”–>“服务器启动”。
修改“服务器启动”中的“类路径”和“参数”选项卡
类路径内容如下(与配置文件log4j.properties中内容相同):
log4j.rootLogger=INFO,syslog
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.Threshold=DEBUG
log4j.appender.syslog.Facility=LOCAL4
log4j.appender.syslog.FacilityPrinting=false
log4j.appender.syslog.Header=true
log4j.appender.syslog.SyslogHost=localhost
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout log4j.appender.syslog.layout.ConversionPattern=[%p] %c:%L - %m%n
参数内容如下:
-Dlog4j.configuration=file:${DOMAIN_HOME}/log4j.properties -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger -Dweblogic.log.Log4jLoggingEnabled=true
说明:Dlog4j.configuration为log4j.properties文件所在路径
示例如下
2.4. 环境变量变更
在weblogic的$domain_home的bin目录下找到weblogic环境配置文件setDomainEnv.sh,首先备份该文件,命令如下:
cp setDomainEnv.sh setDomainEnv.sh.$(date +‘%Y%m%d’)bak
备份后进入文件编译模式,在文件末尾找到JAVA_OPTIONS配置,新增参数如下(即在控制台的参数配置信息)
-Dlog4j.configuration=file:${DOMAIN_HOME}/log4j.properties -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger -Dweblogic.log.Log4jLoggingEnabled=true
示例:
setDomainEnv.sh原有配置如下:
变更后配置如下:
*配置完成后需要对weblogic对应服务进行重启,否则配置将不会生效,syslog无法采集到日志信息*
3. 注意
若weblogic服务配置了nodemager服务,为保证服务节点数据进行同步,则针对weblogic日志输出配置需在每个节点中做配置,即多少个server就要配置多少个,具体配置请参考AdminServer的配置。若非nodemanager模式部署,本文2.3章节可忽略不进行配置