根据IntelliJ IDEA中设置Tomcat服务器配置,IntelliJ IDEA运行Tomcat时,采用的是安装目录和工作目录分开的模式。

所以日志输出位置也就在工作目录下的logs里了。但是在这个目录里只能找到localhost_access_logcatalinamanagerhost-manager这些tomcat本身输出的日志,对已应用自己打的日志竟然找不到。

应用使用的是log4j,配置也很简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
log4j.rootLogger=ERROR,L
log4j.logger.L=ERROR
log4j.appender.L=org.apache.log4j.DailyRollingFileAppender
log4j.appender.L.Threshold=ERROR
log4j.appender.L.ImmediateFlush=true
log4j.appender.L.File=logs/error.log
log4j.appender.L.Append=true
log4j.appender.L.BufferedIO=true
log4j.appender.L.BufferSize=4096
log4j.appender.L.DatePattern=yyyy-MM-dd
log4j.appender.L.layout=org.apache.log4j.PatternLayout
log4j.appender.L.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%5p] - %t - %c -%F(%L) -%m%n

日志位置是logs/error.log,但是问题是,这里日志输出的相对目录是哪里呢?

这里完整的路径是{user.dir}/logs/error.log,所以可以在运行是查看System.getProperty("user.dir")得到当前的目录,发现是Z:\Server\apache-tomcat-7.0.55\bin,原来是tomcat的可执行目录。。。

因为idea启动应用的方式是Z:\Server\apache-tomcat-7.0.55\bin\catalina.bat run,所以当前工作目录是tomcat的bin目录了。

在其中找到了logs/error.log

参考资料