文章背景:本地方法执行时log4j日志打印正常,但是打成可运行jar包后在Linux上报找不到log4j配置文件的异常,我想对于习惯了Spring里配置log4j的同学,出现这种情况应该时意料之中,因为Spring上下文配置文件中一版都会配置加载各种配置文件的Bean,所以当我们独立编写一个应用时应该根据服务器的系统环境手动加载一下log4j的配置文件,具体的解决方法如下:
//读取log4j日志配置文件
InputStream inputStream=ApplicationExecutor.class.getResourceAsStream("/log4j_hwf.properties");
PropertyConfigurator.configure(inputStream);
相关log4j配置 :
### set log levels ###
log4j.rootLogger = stdout,R
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} %p [%t] %c{2} (%M:%L) - %m%n
### 输出日志到文件 按照日志文件大小 ###
log4j.appender.R = org.apache.log4j.RollingFileAppender
log4j.appender.R.ImmediateFlush=true
log4j.appender.R.Append = true
log4j.appender.R.File = logs/hwf_runtime.log
log4j.appender.R.MaxFileSize= 100MB
log4j.appender.R.MaxBackupIndex= 50
log4j.appender.R.encoding= UTF-8
log4j.appender.R.Threshold = INFO
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} %p [%t] %c{2} (%M:%L) - %m%n
以上纯属个人浅见,欢迎吐槽!