Вы не хотите связывать весь свой бизнес и код доступа к данным с ServletContext
(я, конечно, предполагаю, что ваш бизнес и код БД не тесно связаны внутри класса сервлетов, а просто живут на своем собственном уровнеклассов, без каких-либо javax.servlet
ссылок).Поэтому я бы не рекомендовал использовать ServletContext#log()
.Это также очень редко используется в реальном мире.
Вы правы, что log4j популярен, хотя за ним последовал logback .Настройка log4j не должна быть такой сложной.Я предлагаю начать с файла свойств, который менее сложен для понимания, чем файл XML.Вы всегда можете обновить файл до XML, как только поймете, что происходит в конфигурации log4j.
Создайте файл с именем log4j.properties
, поместите его где-нибудь в корень пути к классам, например, /WEB-INF/classes
(или если вывы используете IDE, корень папки src
, она в конечном итоге окажется в нужном месте).Вы также можете оставить его вне веб-приложения и добавить его путь к пути к классам среды выполнения сервера, указав его путь в свойстве shared.loader
Tomcat/conf/catalina.properties
.Наконец, заполните его следующим образом:
# Set root logger level and appender name.
log4j.rootLogger = TRACE, console
# Specify appenders.
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
# Configure console appender.
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p %m%n
# Configure file appender.
log4j.appender.file.File = /webapp/logs/web.log
log4j.appender.file.DatePattern = '.'yyyy-MM-dd
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p %m%n
Этот начальный пример по умолчанию регистрирует на уровне TRACE
.Вы можете изменить его на DEBUG
или INFO
следующим образом:
# Set root logger level and appender name.
log4j.rootLogger = INFO, console
В этом примере также по умолчанию используется консольный appender.Он будет записывать в стандартный вывод, так как он настроен Tomcat, который по умолчанию попадает в файл /logs/localhost.yyyy-MM-dd.log
.
Однако вы можете изменить его, чтобы использовать файловый аппендер следующим образом:
# Set root logger level and appender name.
log4j.rootLogger = INFO, file
Настройки ConversionPattern
подробно можно найти в PatternLayout
javadoc .
Надеюсь, это поможет вам начать работу.