我们使用的是IntelliJ IDEA,本篇文章分为两大部分,第一部分为普通Java Web项目下怎么解决,第二部分为使用maven工程下的web项目怎么解决此异常,达到日志信息正常出现.读者根据自身情况移至相应的部分.
第一部分:普通Java Web项目
有两种情况:
1.情况:没有log4j.properties配置文件
解决方法:在src目录下创建log4j.properties文件,并把下面的内容复制进去,保存后,如果之前运行过该程序,应该会有out的目录(如下图,一个普通java项目编译之后会产生bin目录用来存储编译好的 .class 文件,而IntelliJ IDEA的目录名称默认为out,同样也是在项目的根路径下. ),确保里面有你得配置文件,如果没有可手动复制进去或者删除out目录重新运行程序,会自动重新创建out目录,确保配置文件在其中,查看控制台日志信息是否正常出现.
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
# error warn info debug trace
log4j.rootLogger= info, stdout
2.情况:我有log4j.properties配置文件,但是还是出现异常信息,没有正常日志信息
解决方法:首先检查log4j.properties是否在src目录下,确保out目录里面有你的配置文件,如果没有可手动复制进去或者删除out目录重新运行程序,会自动重新创建out目录,确保配置文件在其中,查看控制台日志信息是否正常出现.
第二部分:maven工程下的web项目
有两种情况:
1.情况:没有log4j.properties配置文件
解决办法:按照第一部分第一种情况创建好log4j.properties配置文件,不同的是该文件放在src–>main–>resources资源目录下
在maven工程下的pom.xml配置文件中的build标签内添加如下一段代码,这样在启动项目时会把这个resources目录下的log4j.properties文件加载进target目录下
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>log4j.properties</include>
</includes>
<filtering>true</filtering>
</resource>
<!--<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>-->
</resources>
然后clean一下
启动maven项目,查看日志信息是否正常
如果正常可以看到target目录下的classes目录下会有log4j.properties配置文件
2.情况:我有log4j.properties配置文件,但是还是出现异常信息,没有正常日志信息
解决办法:参照第一种情况