在log4j.properties有一行配置是关于日志文件目录的。
log4j.appender.RollingFile.File=…/logs/log/faultPush.log
log4j.rootLogger=WARN, Console, RollingFile
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d %-5p [%c{5}] - %m%n
#RollingFile
log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingFile.File=../logs/log/faultPush.log
log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
这种配置。
当直接使用tomcat bin目录下面startup.bat启动时,没问题,日志直接打印到logs文件夹下面。
但是当把tomcat写入系统服务里面启动时候就会出问题,日志会跑到tomcat文件夹外面去。遇到这个问题之后研究了几小时,网上查询的大多都是需要修改init初始化文件写入路径。我觉得比较麻烦,然后仔细想想,tomcat默认的日志每次怎么都是正确输入到指定文件夹。就找到了tomcat文件夹 conf配置文件里面的logging.properties。
打开 问题迎刃而解简单方便logging.properties里面代码
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
有个
c
a
t
a
l
i
n
a
.
b
a
s
e
这
个
。
是
t
o
m
c
a
t
自
带
的
路
径
,
直
接
用
没
毛
病
!
!
l
o
g
4
j
.
a
p
p
e
n
d
e
r
.
R
o
l
l
i
n
g
F
i
l
e
.
F
i
l
e
=
{catalina.base}这个。是tomcat自带的路径,直接用 没毛病!! log4j.appender.RollingFile.File=
catalina.base这个。是tomcat自带的路径,直接用没毛病!!log4j.appender.RollingFile.File={catalina.base}/logs/log/faultPush.log
修改之后直接启动和使用服务启动,日志路径都没问题了。