我的maven应用程序中包含log4j.properties,其设置是将日志写入指定的文件而不是控制台。当我在其中一个websphere服务器上运行EAR时,它会按预期创建文件并将日志写入其中。但是,当我在其他webspehere服务器上运行相同的EAR时,它正在写入控制台而不是将日志写入指定的文件。我检查了权限,一切似乎都没问题。请帮我确定问题所在。提前致谢。
# CONSOLE APPENDER (stdout)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] [%t] %-5p %20c - %m%n
# ROLLING FILE APPENDER (on the file system) for memberpolicyattributesservice code
log4j.appender.xxxxService=org.apache.log4j.RollingFileAppender
log4j.appender.xxxxService.Threshold=DEBUG
log4j.appender.xxxxService.File=/var/logs/xxxServer1/xxxServiceLog.log
log4j.appender.xxxxService.layout=org.apache.log4j.PatternLayout
log4j.appender.xxxxService.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n
log4j.appender.xxxxService.MaxFileSize=10000KB
log4j.appender.xxxxService.MaxBackupIndex=30
log4j.appender.xxxxService.layout=org.apache.log4j.PatternLayout
log4j.appender.xxxxService.layout.ConversionPattern=[%d] [%t] %-5p %20c - %m%n
# ROLLING FILE APPENDER (on the file system) for hiberate, open source code log files
log4j.appender.open_source_code=org.apache.log4j.RollingFileAppender
log4j.appender.open_source_code.layout=org.apache.log4j.PatternLayout
log4j.appender.open_source_code.Threshold=DEBUG
#message format:YYYY-MM-DD HH:mm:ss,ms [ThreadId] <PRIORITY> classname.message
log4j.appender.open_source_code.layout.ConversionPattern=%d [%t]<%-5p> %c.%m \r\n
#file that will be logged to
log4j.appender.open_source_code.File=/var/logs/xxxServer1/open_source_code.log
log4j.appender.open_source_code.Append=true
log4j.appender.open_source_code.MaxFileSize=1024KB
log4j.appender.open_source_code.MaxBackupIndex=5
#turn on log4j verbose mode
log4j.debug = true
# Set root logger level to INFO and its appender to DSInstrumentor,stdout.
log4j.rootLogger=DEBUG,stdout,xxxxService
# YOUR CATEGORIES (to customize logging per class/pkg/project/etc)
log4j.category.fatal=FATAL,xxxxService
log4j.category.error=ERROR,xxxxService
#This will also enable the logging for all the children (packages and classes) of this package
log4j.logger.com.xxxxx=ALL,xxxxService
# Print only messages of level INFO in the open source code
log4j.logger.org=INFO,open_source_code
答案 0 :(得分:0)
您在根记录器中定义了多个记录器(DEBUG,stdout,xxxxService),但xxxxService记录器看起来像是绑定到其中一个系统上的文件系统:
log4j.appender.open_source_code.File =的/ var /日志/的 xxxServer1 强> /open_source_code.log
确保路径对WAS群集中的每个服务器都有效。
作为旁注,您应该避免在远程服务器上使用debug和stdout。这适用于工作站中的本地开发,但不适用于远程机箱。相反,在各种部署层上提供不同的log4j属性。这使您可以自定义日志位置或appender(例如桌面上的c:\ temp或CONSOLE,但所有远程计算机上的/ var / logs ...)以及日志级别(桌面DEBUG,QA或可能是INFO)分段,以及生产的WARN或ERROR。)