Я пишу сервлет, который будет работать в Tomcat (или другом контейнере) и хочу использовать Log4J для ведения журнала из моего сервлета. Однако мой RollingFileAppender регистрируется в корне Tomcat , а не в корне веб-приложения. Так что 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
Мне кажется, что я упускаю что-то простое, хотя в большинстве примеров, которые я видел, используется абсолютный путь или контекст сервлета (которого у меня нет в моей части кода).
Редактировать: Также может иметь значение, что мой сервлет является сервисом, сгенерированным из WSDL с использованием Axis2