我正在编写一个将在 Tomcat(或其他容器)中运行的 servlet,并希望使用 Log4J 从我的 servlet 进行日志记录。但是,我的 RollingFileAppender 正在登录到 Tomcat 根目录 而不是 webapp 根目录。所以 Tomcat_dir/mylog.log
而不是 Tomcat_dir/webapps/MyServlet/mylog.log
这是我的属性文件(我可以看出它正在加载,因为它正确设置了日志文件名):
#logfile is an appender (references log4j.appender.logfile)
log4j.rootLogger=DEBUG, console, logfile
# Logging levels from most logging to least: TRACE, DEBUG, INFO, WARN, ERROR, FATAL
# Setup for console logging
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.Threshold=WARN
log4j.appender.console.layout.ConversionPattern=[%p](%d{dd MMM yyyy HH:mm:ss,SSS}) (%F:%L) - %m%n
#setup for logging to files
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=mylog.log
log4j.appender.logfile.Append=true
log4j.appender.logfile.MaxFileSize=10000KB
log4j.appender.logfile.Threshold=ALL
log4j.appender.logfile.MaxBackupIndex=10
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%p](%d{dd MMM yyyy HH:mm:ss,SSS})(%F:%L) - %m%n
我觉得我遗漏了一些简单的东西,尽管我看到的大多数示例都使用绝对路径或 servlet 上下文(我的代码部分没有)。
编辑:我的 servlet 是使用 Axis2 从 WSDL 生成的服务也可能相关
最佳答案
按照描述使用 ${catalina.base}
var here
log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.file=${catalina.base}/logs/localhost.
log4j.appender.LOCALHOST.encoding=UTF-8
log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.conversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.LOCALHOST.append=true
关于java - 我的 servlet 中的 log4j 正在登录到 tomcat 根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892776/