0

我有一个 servlet,我想登录文件:catalina-< date >.log。配置文件log4j.properties(位于 catalina.home/lib 中)与http://tomcat.apache.org/tomcat-6.0-doc/logging.html(log4j段落)中的相同:

log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.
log4j.appender.CATALINA.Append=true
log4j.appender.CATALINA.Encoding=UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

问题是它没有登录catalina-< date >.log而是登录catalina。看来 appender 配置不正确。文件catalina似乎是从log4j.appender.CATALINA.File=${catalina.home}/logs/catalina 创建的。在配置中。

谁能帮我解决这个问题?

4

1 回答 1

1

如果您想在使用启动脚本启动 Tomcat 时在 win32 上轮换 logs/catalina.out,一种选择是安装一个日志记录器,例如 chronolog(可能是 *NIX-only 的东西),然后修改 catalina。 out 将标准输出通过管道传输到该进程,而不是重定向到文件。

更新:一个更好的选择(通常在 win32 上)可能是使用 Tomcat 的服务安装程序并将 Tomcat 作为服务运行,但我认为轮换日志文件不会让事情变得更容易。

最好的选择当然是首先不要写入标准输出,以避免需要轮换此日志文件。

于 2012-05-25T13:55:54.933 回答