log4j в моем сервлете входит в корень tomcat - PullRequest
1 голос
/ 05 мая 2011

Я пишу сервлет, который будет работать в 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

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Используйте ${catalina.base} var, как описано здесь

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
0 голосов
/ 05 мая 2011

Вы абсолютно уверены, что этот файл конфигурации загружен и используется вашим приложением?Возможно, ваш сервлет использует конфигурационный файл tomcats.

Чтобы перепроверить, добавьте значительное изменение в ваш шаблон конвертации и убедитесь, что ваши сообщения регистрируются с использованием этого шаблона.

...