Apache Tomcat 8

API логирования сервлетов предшествует Java.утилит.регистрация API, который теперь предоставлен Java. Таким образом, это не предлагает вам много вариантов. Эн.г., Вы не можете контролировать уровни журнала. Можно, однако, отметить, что в реализации Apache Tomcat призывы к сервискону.журнал (строка) или genericservlet.журнал (строка) регистрируется на уровне информации. Призывы к ServletContext.журнал (строка, бросаемый) или genericservlet.log (строка, бросаемый) регистрируется на тяжелом уровне.

Краткое содержание:

В этой статье я объясню важность использования Apache Tomcat 9 с log4j2 для целей ведения журнала. Я также предоставлю пошаговое руководство о том, как настроить Apache Tomcat с помощью log4j2, и обсудить лучшие практики для ведения журнала в производственных средах.

Ключевые моменты:

  1. Apache Tomcat 9 и Log4J2 предлагают широкий спектр вариантов журнала и аппендистов
  2. Log4J2 предоставляет упрощенную конфигурацию проката и проглатывания файлов и проглатывания файлов
  3. Чтобы настроить log4j2 с помощью Apache Tomcat, добавьте необходимые библиотеки в ClassPath и удалите журналирование по умолчанию.Файл свойств
  4. Начиная с Tomcat 8.5.4, библиотеки Juli-Adapter больше не нужны, так как log4j2 может быть напрямую подключен к Java.утилит.Ведение журнала
  5. Для производственных среда рекомендуется настроить конфигурацию log4j2, чтобы избежать дублирования журналов, включить вращение журнала и удалить неиспользованные приложения
  6. Кроме того, присоединение к различным регистраторам в один приложение может помочь определить проблемы развертывания в приложениях
  7. Чтобы заставить приложения с использованием системы.вне и система.Поверните, чтобы журнал, добавьте атрибут SwallowOutput в контексте.XML -файл
  8. Приложения, использующие Framework JUL
  9. При использовании Spring Boot с Log4J2, исключите зависимость от пружины-буте-стартера и добавить Spring-Boot-Starter-Log4J2
  10. Настройка уровней ведения журнала для конкретных пакетов и отключить баннер Spring по мере необходимости

Вопросы:

  1. Почему я должен рассмотреть возможность использования Apache Tomcat 9 с log4j2 для регистрации?
    Log4J2 предлагает широкий спектр вариантов журнала и аппендеров, что делает его мощным инструментом для управления журналами в Tomcat.
  2. Как настроить log4j2 с Apache Tomcat?
    Чтобы настроить log4j2 с помощью Apache Tomcat, вам необходимо добавить необходимые библиотеки в ClassPath и удалить журналис.Файл свойств.
  3. Почему библиотеки Juli-Adapter больше не нужны в Tomcat 8.5.4 и выше?
    Log4j2 может быть напрямую подключен к Java.утилит.Регистрация, устраняя необходимость в библиотеках Джули-адаптера.
  4. Каковы рекомендуемые конфигурации журнала для производственных средств?
    В производственных средах рекомендуется настроить конфигурацию log4j2, чтобы избежать дублирования журналов, включить вращение журнала и удалить неиспользованные приложения.
  5. Как я могу заставить приложения с помощью системы.вне и система.ошибается в журнале?
    Добавив атрибут howlowoutput в контексте.XML -файл, приложения с использованием системы.вне и система.ERR может быть вынужден регистрировать.
  6. Могут быть настроены приложения с использованием jul framework для использования log4j2?
    Да, путем изменения переменной среды logging_manager, приложения, использующие Framework JUL.
  7. Что я должен сделать, чтобы использовать log4j2 с пружинной загрузкой?
    Чтобы использовать log4j2 с пружинной загрузкой, исключите зависимость с пружиной-бутером-стартером и добавьте Spring-Boot-Starter-Log4J2.
  8. Как я могу настроить уровни регистрации для определенных пакетов в Spring Boot?
    Уровни журнала для конкретных пакетов могут быть настроены путем изменения свойств конфигурации журнала в файле конфигурации приложения.
  9. Возможно ли отключить пружинный баннер в Spring Boot?
    Да, пружинный баннер может быть отключен, установив пружину.основной.Свойство баннера режима для выключения в файле конфигурации приложения.
  10. Почему я должен использовать log4j2 вместо реализации журнала по умолчанию в Tomcat?
    Log4J2 предлагает более широкий спектр вариантов журнала и аппендинов, что делает его более гибким и мощным по сравнению с реализацией журнала по умолчанию в Tomcat.

Подробные ответы:

  1. Почему я должен рассмотреть возможность использования Apache Tomcat 9 с log4j2 для регистрации?
    Apache Tomcat 9 с Log4J2 предоставляет более продвинутую и гибкую систему журнала по сравнению с реализацией журнала по умолчанию. Log4J2 предлагает широкий спектр аппендеров и параметров журнала, позволяя эффективно настроить и управлять своими журналами. Простота конфигурации log4j2 и ее возможность накачивать файлы журнала с исходным именем делают его привлекательным выбором для конфигураций проглатывания журнала. Кроме того, использование log4j2 устраняет ограничения API логаризма сервлетов, таких как неспособность управлять уровнями журнала.
  2. Как настроить log4j2 с Apache Tomcat?
    Настройка log4j2 с Apache Tomcat проста. Во-первых, вам нужно добавить библиотеки log4j2-api, log4j2-core и log4j2-appserver в Tomcat ClassPath. Затем предоставьте файл конфигурации log4j2 в вашем проекте. Наконец, удалите регистрацию по умолчанию.Файл свойств из установки Tomcat. Следуя этим шагам позволит log4j2 в качестве платформы журнала Tomcat.
  3. Почему библиотеки Juli-Adapter больше не нужны в Tomcat 8.5.4 и выше?
    Версии Tomcat 8.5.4 и выше представили прямую интеграцию с LOG4J2, устраняя необходимость в библиотеках Юли-Адаптера. Log4j2 теперь можно подключить непосредственно к Java.утилит.Регистрация, что делает его бесшовной заменой для регистрации сервлетов API. Эта интеграция упрощает процесс конфигурации журнала и обеспечивает больший контроль над уровнями журнала и приложениями.
  4. Каковы рекомендуемые конфигурации журнала для производственных средств?
    При настройке log4j2 для производственных среда следует учитывать несколько соображений. Во -первых, важно избегать дублирующихся выходов в журнал в Каталине.out file и catalina.журнальный файл. Это может быть достигнуто путем удаления консоли -рук. Во -вторых, рекомендуется включить вращение журнала для каталины.Файл журнала, чтобы он не стал слишком большим. Наконец, удаление неиспользованных аппендиров, таких как менеджер.log и host_manager.Журнал может помочь обручить выход журнала. Кроме того, присоединение к разным регистраторам в один приложение, такие как логгеры Catalina и Localhost, может упростить устранение неполадок и выявить проблемы развертывания.
  5. Как я могу заставить приложения с помощью системы.вне и система.ошибается в журнале?
    Чтобы заставить приложения, которые используют систему.вне и система.Поверните, вы можете добавить атрибут wallowOlloutput в контекст по умолчанию.XML -файл, расположенный в $ catalina_base/conf/context.XML. Этот атрибут инструктирует Tomcat для перенаправления системы.вне и система.ошибьте систему ведения журнала, гарантируя, что все выходные данные захвачены в журналах.
  6. Могут быть настроены приложения с использованием jul framework для использования log4j2?
    Да, приложения, которые используют структуру журнала Jul (Java Util), могут быть настроены на использование log4j2. Изменение переменной среды logging_manager в Setenv.sh-файл, вы можете установить значение на «-djava.утилит.Ведение журнала.менеджер = орг.апач.Ведение журнала.log4j.июль.Logmanager “. Эта конфигурация гарантирует, что приложения, использующие Jul, будут использовать формат Log4J2 для своих журналов вместо формата по умолчанию.
  7. Что я должен сделать, чтобы использовать log4j2 с пружинной загрузкой?
    Чтобы использовать log4j2 с Spring Boot, вам необходимо исключить зависимость по умолчанию по умолчанию-буте-стартеров. Это можно сделать, указав <исключать>Спринг-буте-стартеров</исключать> В разделе «Зависимости» POM вашего проекта.XML -файл. После исключения зависимости для ведения журнала по умолчанию вы можете добавить зависимость Spring-Boot-Starter-Log4J2, которая включает в себя все необходимые зависимости log4J2 и SLF4J. Если вы не используете какую-либо из функций SLF4J, вы можете использовать зависимость log4j-web вместо этого.
  8. Как я могу настроить уровни регистрации для определенных пакетов в Spring Boot?
    В Spring Boot вы можете настроить уровни журнала для конкретных пакетов, изменяя конфигурацию журнала в свойствах приложения или файла YAML. Синтаксис для настройки уровней ведения журнала является Ведение журнала.уровень.package_name = level. Например, если вы хотите установить уровень отладки для «org.Пакет Springframework “и пакет” Hello “, вы можете добавить следующую конфигурацию: Ведение журнала.уровень.орг.Springframework = Debug и Ведение журнала.уровень.Привет = отладка.
  9. Возможно ли отключить пружинный баннер в Spring Boot?
    Да, можно отключить пружинный баннер в Spring Boot. Установив весна.основной.Баннер-режим Свойство «отключить» в свойствах приложения или файла YAML вы можете помешать баннеру появиться в выводе консоли или файлов журнала.
  10. Почему я должен использовать log4j2 вместо реализации журнала по умолчанию в Tomcat?
    Log4J2 предлагает несколько преимуществ по сравнению с реализацией журнала по умолчанию в Tomcat. Он предоставляет более широкий диапазон аппендистов и параметров журнала, что позволяет настроить ваши журналы в соответствии с вашими потребностями. Log4j2 также предлагает большую гибкость в прокатровании файлов журнала, упрощающие конфигурации проглатывания журнала. Кроме того, log4j2 устраняет ограничения API логаризма сервлетов, таких как неспособность управлять уровнями журнала. В целом, использование log4j2 может улучшить ваш опыт журнала в Tomcat.

Apache Tomcat 8

API логирования сервлетов предшествует Java.утилит.регистрация API, который теперь предоставлен Java. Таким образом, это не предлагает вам много вариантов. Эн.г., Вы не можете контролировать уровни журнала. Можно, однако, отметить, что в реализации Apache Tomcat призывы к сервискону.журнал (строка) или genericservlet.журнал (строка) регистрируется на уровне информации. Призывы к ServletContext.журнал (строка, бросаемый) или genericservlet.log (строка, бросаемый) регистрируется на тяжелом уровне.

Сохраняя ваши журналы в чистоте с помощью Apache Tomcat 9, Log4J2 и Spring-Boot

В последние дни я играл с Apache Tomcat 9 и log4j2. Вы можете задаться вопросом, почему я хочу изменить хорошее, старый Tomcat Juli. Ну, хотя мне нравится простота его конфигурации и тот факт, что Juli работает, Log4J2 предлагает большое разнообразие аппендистов, которые делают его очень интересным. Также я предпочитаю способ, как log4j2 бросает файлы, сохраняя исходное имя не касается (e.г. Каталина.журнал), это делает мою конфигурацию проглатывания в журнале (logstash) немного проще.

Apache Tomcat с конфигурацией log4j2

Конфигурация Apache-Tomcat довольно проста. Вам просто нужно добавить библиотеки Log4J2-API, log4j2-core и log4j2-appserver в Tomcat ClassPath, предоставьте файл конфигурации log4j2 и удалять а $ Catalina_base/conf/rearging.характеристики от вашей установки. Эти шаги описаны здесь.

Если вы используете версии Tomcat до 8.5.4 Вы можете задаться вопросом, что произошло с библиотеками Джули-Адаптера из знаменитых дополнений Tomcat? Они больше не нужны, потому что log4j2 можно подключить к Java.утилит.Ругар, ура! Смотрите больше на ASF Bugzilla – Bug 58588

Конфигурация журнала для производственных средств

Если вы используете недавнюю версию Tomcat, вы увидите, что глава «Использование log4j» предыдущих версий еще нет. У вас может быть искушение повторного использования старого log4j.Свойства, которые отражают Java по умолчанию.утилит.Ведение журнала. Будьте осторожны, потому что синтаксис свойств log4j2 изменился. С этим (кстати, спасибо, Брайан Мопин. ) вы получите конфигурацию по умолчанию с тремя регистраторами и аппендерами по умолчанию по умолчанию. Для использования производства вы можете учитывать соображения Tomcat Docs и рекомендации о регистрации из Марк Томас, Член Комитета по управлению проектами Apache Tomcat:

  1. Делать нетТ дублировать Томкат выход в Каталине.Out (консоль) и в каталине.журнал, избавиться от консоли -руку
  2. Добавлять ротация вашей каталине.бревно
  3. Удаление не используемых приложений менеджер.log и host_manager.бревно
  4. Присоединиться другой лесозаготовители (Catalina & Localhost) в один приложение (Каталина.бревно). Это полезно для определения проблем развертывания в приложениях, таких как неправильно определенные фильтры.

Конфигурация log4J2, представленная в примере, пытается следовать этим соображениям. Если вы запустите с ним сервер Tomcat, и ваш Tomcat работает «здоровый», вы должны почти ничего увидеть в консоли. С этой конфигурацией, в консоли вы увидите только очень катастрофические вещи, такие как OutofmemoryErrors, или Dills Thread.

Система принуждения.вне и система.ошибается в журнале

Если мы развертываем приложения на нашем сервере, которые все еще используют Система.вне и/или Система.ошибка, Мы можем заставить их использовать наш логист allowlowoutput = “true” В дефолте $ Catalina_base/conf/context.XML сервера. Мы можем сделать это также по применению, изменяя каждое из их мета-инф/контекст.XML.

Java Util Logging and Log4J2

Также у нас могут быть приложения, которые используют хорошую и старую структуру JUL:

01 апреля 2019 г. 9:22:05 Привет.Helloworldcontroller sayhello info: Привет, июль.

Эти приложения будут использовать по умолчанию Ведение журнала.характеристики нашего JDK, который уровень по умолчанию ИНФОРМАЦИЯ и отформатировать SimpleFormatter. Мы можем заставить их использовать наш формат log4J2, изменяя переменную среды Logging_manager. Вы можете сделать это добавление в Setenv.шнур Файл: logging_manager = “-djava.утилит.Ведение журнала.менеджер = орг.апач.Ведение журнала.log4j.июль.Logmanager “ Теперь ваши журналы будут выглядеть как что -то вроде этого:

Tomcat 2019-04-01 09: 13: 53 524 [Catalina-Utility-1] Информация привет.HelloWorldApplication- Привет, июль.

Помните это орг.апач.Ведение журнала.log4j.июль.Logmanager включен в log4j-jul-2.11.2.баночный мост, который должен быть добавлен в ваш Путь.

Spring Boot и log4j2

Мы хотим развернуть приложение Hello-Spring Boot, REST, в котором используется наша конфигурация log4J2 (приложение и формат), и в то же время мы хотим сохранить возможность определения разных регистраторов. Например, давайте представим, что мы хотим установить уровень отладки на наши бизнес -классы, пакет Hello, а также Springframework. А также дает замолчать классический весенний баннер:

Ведение журнала.уровень.орг.Springframework = журнал отладки.уровень.Привет = отладка весны.основной.Banner-Mode = OFF

По умолчанию стартеры с пружинами используют логику, поэтому для использования log4j2 нам нужно исключать Спринг-буте-стартеров от разных стартовых артефактов и добавить Spring-Boot-Starter-Log4J2 зависимость. Этот последний будет включать все зависимости log4j2 плюс SLF4J. Может случиться так, что мы не используем ни одну из функций SL4J, таких как параметризованные сообщения, или, как в нашем случае, мы хотим использовать непосредственно log4j2. Если это ваш случай, вы можете просто добавить log4j-web зависимость. Кстати, это тот, который вы должны добавить для непрессовых веб -приложений, см. Больше на «Использование log4j в веб -приложениях».

Заключение

В этой записи мы узнали, как настроить Apache Tomcat для работы с Log4J2, как подготовить эту настройку для производства и как развернуть приложение Spring Boot на нашем сервере Tomcat, которая использует нашу конфигурацию. Вы можете найти все это в этом репозитории GitHub.

Хорошего дня кодирования!

Apache Tomcat 8

Томкат домой

Внутренняя ведение журнала для Apache Tomcat использует Juli, упакованную переименованную вилку Apache Commons, который по умолчанию жестко кодируется для использования Java.утилит.Формуна для ведения регистрации. Это гарантирует, что внутреннее ведение журнала Tomcat и любая регистрация веб -приложений останутся независимыми, даже если веб -приложение использует журнал Apache Commons.

Для настройки Tomcat для использования альтернативной платформы регистрации для его внутреннего ведения журнала необходимо заменить реализацию Juli, которая жестко кодирована для использования Java.утилит.Регистрация с реализацией Juli, которая сохраняет механизм обнаружения Full Commons. Такая реализация предоставляется в качестве дополнительного компонента. Инструкции о том, как настроить Tomcat для использования Framework Log4J для его внутреннего ведения журнала, можно найти ниже.

Веб -приложение, работающее на Apache Tomcat Can:

  • Используйте любую систему журнала по его выбору.
  • Используйте системный журнал API, Java.утилит.Ведение журнала .
  • Используйте API журналирования, предоставленный спецификацией сервлетов Java, Javax.сервис.ServletContext.бревно(. )

Фреймворки журнала, используемые различными веб -приложениями, являются независимыми. См. Загрузку класса для более подробной информации. Исключением из этого правила является Java.утилит.Ведение журнала . Если он используется прямо или косвенно в вашей библиотеке журналов, то его элементы будут переданы в веб -приложениях, потому что он загружается системным загрузчиком класса.

Java Logging API – Java.утилит.Ведение журнала

Apache Tomcat имеет свою собственную реализацию нескольких ключевых элементов Java.утилит.регистрация API. Эта реализация называется Юли. Ключевой компонент существует пользовательская реализация Logmanager, которая осведомлена о различных веб -приложениях, работающих на Tomcat (и их различных загрузчиках класса). Он поддерживает частные конфигурации журнала в отношении применения. Он также уведомляется Tomcat, когда веб -приложение выгружается из памяти, так что ссылки на его классы могут быть очищены, предотвращая утечки памяти.

Эта Java.утилит.Реализация регистрации включена путем предоставления определенных свойств системы при запуске Java. Сценарии запуска Apache Tomcat делают это для вас, но если вы используете разные инструменты для запуска Tomcat (например, JSVC или запуска Tomcat из IDE), вы должны позаботиться о них самостоятельно.

Более подробная информация о Java.утилит.Регистрация может быть найдена в документации для вашего JDK и на его страницах Javadoc для Java.утилит.ведение пакета регистрации.

Более подробную информацию о Tomcat Juli можно найти ниже.

Сервлеты регистрируют API

Звонки в Javax.сервис.ServletContext.бревно(. ) Написать сообщения журнала обрабатываются внутренним журналом Tomcat. Такие сообщения регистрируются в названной категории

орг.апач.Каталина.основной.Контейнербаза.[$].[$].[$]

Этот журнал выполняется в соответствии с конфигурацией журнала Tomcat. Вы не можете перезаписать его в веб -приложении.

API логирования сервлетов предшествует Java.утилит.регистрация API, который теперь предоставлен Java. Таким образом, это не предлагает вам много вариантов. Эн.г., Вы не можете контролировать уровни журнала. Можно, однако, отметить, что в реализации Apache Tomcat призывы к сервискону.журнал (строка) или genericservlet.журнал (строка) регистрируется на уровне информации. Призывы к ServletContext.журнал (строка, бросаемый) или genericservlet.log (строка, бросаемый) регистрируется на тяжелом уровне.

Консоль

При запуске Tomcat на Unixes вывод консоли обычно перенаправляется на файл с именем Catalina.вне . Имя настраивается с использованием переменной среды. (См. Сценарии запуска). Что записано в систему.err/out будет попасть в этот файл. Это может включать в себя:

  • Неучтенные исключения, напечатанные Java.ланг.Threadgroup.Uncaughtexception (..)
  • Дампы потоков, если вы запросили их через системный сигнал

При запуске в качестве службы в Windows вывод консоли также пойман и перенаправлен, но имена файлов разные.

Конфигурация журнала по умолчанию в Apache Tomcat записывает те же сообщения в консоли и в файл журнала. Это здорово при использовании Tomcat для разработки, но обычно не требуется в производстве.

Старые приложения, которые все еще используют систему.вне или система.ERR можно обмануть, установив атрибут wallowOutputput в контексте. Если атрибут установлен на True, вызовы к системе.Out/Err во время обработки запросов будет перехвачен, и их вывод будет подаваться в подсистему журнала с использованием Javax.сервис.ServletContext.бревно(. ) вызовы.
Примечание, То, что функция ласточки -аутоутока на самом деле является хитростью, и у нее есть свои ограничения. Он работает только с прямыми вызовами в систему.OUT/ERR, и только во время цикла обработки запросов. Он может не работать в других темах, которые могут быть созданы приложением. Его нельзя использовать для перехвата фреймворков, которые сами пишут в системные потоки, поскольку те, которые начинаются рано и могут получить прямую ссылку на потоки до перенаправления.

Доступ к журналу

Регистрация доступа – это связанная, но другая функция, которая реализована как клапан . Он использует автономную логику для написания файлов журналов. Основным требованием для регистрации доступа является обработка большого непрерывного потока данных с низкими накладными расходами, поэтому он использует только журнал Apache Commons для своих собственных сообщений отладки. Этот подход реализации позволяет избежать дополнительных накладных расходов и потенциально сложной конфигурации. Пожалуйста, обратитесь к документации клапанов для получения более подробной информации о его конфигурации, включая различные форматы отчетов.

Используя Java.утилит.регистрация (по умолчанию)

Реализация Java по умолчанию.утилит.Регистрация, предоставленная в JDK, слишком ограничена, чтобы быть полезным. Ограничением ключа является неспособность провести журнал приложений для пакета, так как конфигурация для VM. В результате Tomcat в конфигурации по умолчанию заменит реализацию Logmanager по умолчанию на реализацию, дружественную к контейнерам под названием Juli, которая решает эти недостатки.

Юли поддерживает те же механизмы конфигурации, что и стандартная JDK Java.утилит.ведение журнала, использование либо программного подхода, либо файлов свойств. Основное отличие состоит в том, что могут быть установлены файлы свойств в класс-загрузчике (что позволяет простая конфигурация для удобства для перераспределения), а файлы свойств поддерживают расширенные конструкции, что позволяет больше свободы для определения обработчиков и присвоения им регистраторам регистрации.

Джули включен по умолчанию и поддерживает конфигурацию за класс загрузчика, в дополнение к обычной Global Java.утилит.Конфигурация журнала. Это означает, что ведение журнала может быть настроено на следующих слоях:

  • Во всем мире. Это обычно делается в $/conf/logging.Файл свойств. Файл указан Java.утилит.Ведение журнала.конфигурация.Свойство файловой системы, которое установлено сценариями запуска. Если он не читается или не настроен, по умолчанию является использование $/lib/logging.Файл свойств в JRE.
  • В веб -приложении. Файл будет Web-Inf/Classes/Logging.характеристики

Журнал по умолчанию.Свойства в JRE определяет консоль -руку, который маршрутирует регистрацию в систему.ошибка. Conf/журнал по умолчанию.Свойства в Apache Tomcat также добавляет несколько FileHandler S, которые записывают в файлы.

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

Чтобы включить ведение журнала отладки для части внутренних участников Tomcat, вы должны настроить как соответствующие логические (ы), так и соответствующий обработчик (ы) для использования лучших или всех уровней. эн.г.:

орг.апач.Каталина.сессия.Уровень = все Java.утилит.Ведение журнала.Консоль.уровень = все

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

Конфигурация, используемая Юли, такая же, как и такая, поддерживаемая простой Java.утилит.Регистрация, но использует несколько расширений, чтобы обеспечить лучшую гибкость в настройке регистраторов и обработчиков. Основные различия:

  • Префикс может быть добавлен к именам обработчиков, так что могут быть созданы несколько обработчиков одного класса. Префикс – это строка, которая начинается с цифры и заканчивается ‘.’. Например, 22foobar. является действительным префиксом.
  • Замена свойств системы выполняется для значений свойств, которые содержат $.
  • При использовании загрузчика класса, который реализует орг.апач.Джули.Интерфейс WebApppRoperties (загрузчик класса веб -приложений Tomcat), затем замена свойств также выполняется для $, $ и $, которые заменяются именем веб -приложения, имя хоста и имя службы соответственно.
  • По умолчанию, регистраторы не будут делегировать своему родителю, если у них есть связанные обработчики. Это может быть изменено на регистрацию с использованием loggerName.собственность Useparenthandlers, которая принимает логическое значение.
  • Корневой регистратор может определить свой набор обработчиков, используя .Хэндлеры имущество.
  • По умолчанию файлы журнала будут храниться в файловой системе навсегда. Это может быть изменено на одного обработчика с помощью имени Handlern.Maxdays Property. Если указанное значение для свойства

Существует несколько дополнительных классов реализации, которые можно использовать вместе с предоставленными Java. Примечательным является орг.апач.Джули.FileHandler .

орг.апач.Джули.FileHandler поддерживает буферизацию журналов. Буферизация не включена по умолчанию. Чтобы настроить его, используйте свойство буферизации обработчика. Значение 0 использует буферизацию системы по умолчанию (обычно будет использоваться буфер 8K). Значение 0 использует BufferedOutputStream с определенным значением, но обратите внимание, что буферизация системы по умолчанию также будет применяться.

Пример ведения журнала.Файл свойств, который будет размещен в $ catalina_base/conf:

Хэндлеры = 1Catalina.орг.апач.Джули.FileHandler, \ 2localhost.орг.апач.Джули.FileHandler, \ 3Manager.орг.апач.Джули.FileHandler, \ java.утилит.Ведение журнала.Консоль .Хэндлеры = 1Catalina.орг.апач.Джули.FileHandler, Java.утилит.Ведение журнала.ConsoleHandler ############################################################ # Handler specific properties. # Описывает конкретную информацию о конфигурации для обработчиков. ################################################################################################################## 2.орг.апач.Джули.FileHandler.level = fine 1catalina.орг.апач.Джули.FileHandler.каталог = $/журналы 1Catalina.орг.апач.Джули.FileHandler.Префикс = Каталина. 2localhost.орг.апач.Джули.FileHandler.level = fine 2localhost.орг.апач.Джули.FileHandler.Directory = $/logs 2localhost.орг.апач.Джули.FileHandler.Префикс = localhost. 3 Manager.орг.апач.Джули.FileHandler.level = fine 3manager.орг.апач.Джули.FileHandler.Directory = $/logs 3manager.орг.апач.Джули.FileHandler.Префикс = менеджер. 3 Manager.орг.апач.Джули.FileHandler.Buffersize = 16384 Java.утилит.Ведение журнала.Консоль.Уровень = тонкая ява.утилит.Ведение журнала.Консоль.Formatter = Java.утилит.Ведение журнала.SimpleFormatter ############################################################ # Facility specific properties. # Обеспечивает дополнительное управление для каждого регистратора. ########################################################################################################## 2.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].level = info org.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].обработчики = \ 2localhost.орг.апач.Джули.FileHandler org.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].[/менеджер].level = info org.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].[/менеджер].обработчики = \ 3manager.орг.апач.Джули.FileHandler # Например, установите орг.апач.Каталина.утилит.LifeCyclebase Logger для журнала # Каждый компонент, который расширяет состояние изменения жизненного циклабазы: #org.апач.Каталина.утилит.LifeCyclebase.Уровень = нормально

Пример ведения журнала.Свойства для веб-приложения Servlet-Examples будет размещено в Web-Inf/классах внутри веб-приложения:

Хэндлеры = орг.апач.Джули.FileHandler, Java.утилит.Ведение журнала.ConsoleHandler ############################################################ # Handler specific properties. # Описывает конкретную информацию о конфигурации для обработчиков. ########################################################################################################## 2.апач.Джули.FileHandler.level = fine org.апач.Джули.FileHandler.Directory = $/logs org.апач.Джули.FileHandler.Префикс = $. Джава.утилит.Ведение журнала.Консоль.Уровень = тонкая ява.утилит.Ведение журнала.Консоль.Formatter = Java.утилит.Ведение журнала.SimpleFormatter

Ссылки на документацию

Смотрите следующие ресурсы для получения дополнительной информации:

  • Apache Tomcat Javadoc для орг.апач.Джули Пакет.
  • Oracle Java 6 Javadoc для Java.утилит.ведение пакета регистрации.

Соображения для использования производства

Вы можете принять к сведению следующее:

  • Подумайте о удалении консоли -рук из конфигурации. По умолчанию (благодаря .Настройка обработчиков) ведение журнала идет как на файл, так и к консольно . Вывод последнего обычно попадает в файл, такой как Catalina.вне . Таким образом, у вас есть две копии одних и тех же сообщений.
  • Подумайте о удалении FileHandler S для приложений, которые вы не используете. Эн.г., Тот для хозяина-менеджера .
  • Обработчики по умолчанию используют кодирование системы по умолчанию для записи файлов журнала. Он может быть настроен со свойством кодирования. Смотрите Javadoc для деталей.
  • Подумайте о настройке журнала доступа.

Используя log4j

В этом разделе объясняется, как настроить Tomcat для использования log4j, а не Java.утилит.Регистрация для всех внутренних журналов Tomcat.

Примечание: Шаги, описанные в этом разделе, необходимы, когда вы хотите перенастроить Tomcat, чтобы использовать Apache Log4j для собственного ведения журнала. Эти шаги есть нет необходимо, если вы просто хотите использовать log4j в своем собственном веб -приложении. – В этом случае просто положите log4j.jar и log4j.Свойства в Web-Inf/LIB и Web-Inf/классы вашего веб-приложения.

В следующих шагах описывается настройка log4j для вывода внутренней журнала Tomcat.

  1. Создайте файл с названием log4j.Свойства со следующим контентом и сохранить его в $ catalina_base/lib

 log4j.rootlogger = info, catalina # определить все приложения log4j.Приложение.Каталина = орг.апач.log4j.DailyrollingFileAppender log4j.Приложение.Каталина.File = $/logs/catalina log4j.Приложение.Каталина.Append = true log4j.Приложение.Каталина.Encoding = UTF-8 # перевернуть журнал один раз в день log4j.Приложение.Каталина.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.Каталина.макет = орг.апач.log4j.PatternLayout log4j.Приложение.Каталина.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Localhost = org.апач.log4j.DailyrollingFileAppender log4j.Приложение.Местный хост.File = $/logs/localhost log4j.Приложение.Местный хост.Append = true log4j.Приложение.Местный хост.Encoding = UTF-8 log4j.Приложение.Местный хост.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.Местный хост.макет = орг.апач.log4j.PatternLayout log4j.Приложение.Местный хост.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Менеджер = орг.апач.log4j.DailyrollingFileAppender log4j.Приложение.МЕНЕДЖЕР.File = $/logs/manager log4j.Приложение.МЕНЕДЖЕР.Append = true log4j.Приложение.МЕНЕДЖЕР.Encoding = UTF-8 log4j.Приложение.МЕНЕДЖЕР.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.МЕНЕДЖЕР.макет = орг.апач.log4j.PatternLayout log4j.Приложение.МЕНЕДЖЕР.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Host-Manager = org.апач.log4j.DailyrollingFileAppender log4j.Приложение.Хозяин.File = $/logs/host-manager log4j.Приложение.Хозяин.Append = true log4j.Приложение.Хозяин.Encoding = UTF-8 log4j.Приложение.Хозяин.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.Хозяин.макет = орг.апач.log4j.PatternLayout log4j.Приложение.Хозяин.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Консоль = орг.апач.log4j.Consoleappender log4j.Приложение.КОНСОЛЬ.Encoding = UTF-8 log4j.Приложение.КОНСОЛЬ.макет = орг.апач.log4j.PatternLayout log4j.Приложение.КОНСОЛЬ.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n # Настройка, какое журнал регистрации, на которые придаются аппендеры log4j.регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[localhost] = info, localhost log4j.регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].[/Manager] = \ Info, Manager log4j.регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].[/host-manager] = \ info, host-manager

  1. Скачать log4j (Tomcat требует v1.2.Икс).
  2. Скачать или построить Tomcat-Juli.Jar и Tomcat-Juli-Adapters.JAR, которая доступна в качестве компонента «дополнений» для Tomcat. См. Дополнительные компоненты документации для получения подробной информации. Это Томкат-Джули.JAR отличается от по умолчанию. Он содержит полную реализацию регистрации Apache Commons и, таким образом, может обнаружить наличие log4j и настроить себя.
  3. Если вы хотите настроить Tomcat для использования log4j во всем мире:
    • Поместите log4j.Jar и Tomcat-Juli-Adapters.банка из “дополнительных” в $ catalina_home/lib .
    • Заменить $ catalina_home/bin/tomcat-juli.банка с Томкат-Джули.банка из “дополнений”.
  4. Если вы используете Tomcat с отдельной $ catalina_home и $ catalina_base и хотите настроить на использование log4j только в одной $ catalina_base:
    • Создать $ catalina_base/bin и $ catalina_base/lib каталоги, если они не существуют.
    • Поместите log4j.Jar и Tomcat-Juli-Adapters.банка из “дополнительных” в $ catalina_base/lib
    • Поместите Томкат-Джули.JAR от “Extras” как $ catalina_base/bin/tomcat-juli.банка
    • Если вы работаете с менеджером безопасности, вам нужно будет отредактировать $ catalina_base/conf/catalina.Файл политики, чтобы настроить его на использование другой копии Tomcat-Juli.банка.

Примечание. Это работает, потому что библиотеки, если они существуют в $ catalina_base, загружаются в предпочтения в ту же библиотеку в $ catalina_home .

Примечание: Томкат-Джули.JAR загружается из $ catalina_base /bin Not $ catalina_base /lib, так как он загружается как часть процесса начальной загрузки, и все классы начальной загрузки загружаются из бина.

Эта конфигурация log4j отражает Java по умолчанию.утилит.Настройка журнала, которая поставляется с Tomcat: Приложения Manager и Host-Manager Получают отдельный файл журнала, а все остальное идет в «Каталину.Журнал «Файл журнала. Каждый файл прокатывается один раз в день.

Вы можете (и должны) быть более разборчивым в отношении того, какие пакеты включать в журнал журнала. Tomcat определяет регистраторов по именам двигателя и хоста. Например, для более подробного журнала Catalina Localhost добавьте это к концу log4j.Свойства выше. Обратите внимание, что существуют известные проблемы с использованием этого соглашения об именах (с квадратными кронштейнами) в файлах конфигурации на основе Log4J XML, поэтому мы рекомендуем использовать файл свойств, как описано, до тех пор, пока будущая версия Log4J не допустит этого соглашения.

log4j.регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[localhost] = отладка log4j.регистратор.орг.апач.Каталина.CORE = DEBUG LOG4J.регистратор.орг.апач.Каталина.Session = DEBUG

Будьте осторожны: уровень отладки будет производить мегабайты журнала и медленного запуска Tomcat. Этот уровень должен использоваться экономно при отладке внутренних операций Tomcat.

Ваши веб -приложения, безусловно, должны использовать свою собственную конфигурацию log4j. Это действительно с вышеуказанная конфигурация. Вы бы разместили аналогичный log4j.Файл свойств в каталоге веб-приложения Web-Inf/Classes и Log4JX.у.Z.jar в web-inf/lib. Затем укажите регистрацию уровня пакета. Это базовая настройка log4j, которая не требует * не требует общего пользования, и вам следует проконсультироваться с документацией Log4J для получения дополнительных вариантов. Эта страница предназначена только в качестве начальной загрузки.

  • Это разоблачает библиотеки log4j в веб -приложения через общий класс загрузчика. Для получения подробной информации см. Загрузку класса. Из -за этого веб -приложения и библиотеки с использованием библиотеки журнала Apache Commons, вероятно, автоматически выберут log4j в качестве базовой реализации журнала журнала.
  • Ява.утилит.Исследование API по -прежнему доступно для тех веб -приложений, которые используют его напрямую. $/Conf/rearging.Файл свойств все еще ссылается на сценарии стартапов Tomcat. Для получения дополнительной информации см. Подразделы введения на эту страницу. Удаление $/conf/.Файл свойств, упомянутый как один из вышеуказанных шагов, вызывает Java.утилит.Восхождение на отступление на конфигурацию по умолчанию для JRE, который должен использовать консольный и, следовательно, не создавать никаких стандартных файлов журнала. Вы должны подтвердить, что все ваши файлы журнала создаются log4j до Отключение стандартного механизма.
  • А Доступ к журналу клапана и ExtendAccessLogValve Используйте свою автономную реализацию журнала, чтобы они не может быть настроен на использование log4j. Обратитесь к клапанам для конкретных сведений о конфигурации.

Комментарии

Уведомление: Этот раздел комментариев собирает ваши предложения по улучшению документации для Apache Tomcat.

Если у вас есть проблемы и нужна помощь, прочитайте страницу «Найти справку» и задайте ваш вопрос в списке рассылки пользователей Tomcat. Не задавать такие вопросы здесь. Это не раздел вопросов и ответов.

Система комментариев Apache объясняется здесь. Комментарии могут быть удалены нашими модераторами, если они либо реализованы, либо считаются недействительными/вне темы.

Tomcat log4j настройка шаг за шагом

Apache Tomcat J2EE Server

Библиотека и конфигурация Juli Logging и конфигурация доступны по умолчанию с установщиком Tomcat. Чтобы использовать log4j для внутренних журналов Tomcat, вам нужно будет заменить существующую библиотеку Юли на интеграцию log4j-juli.

1. Удалить существующую библиотеку Юли (Catalina_home/bin/tomcat-juli.Файл JAR) и существующий файл конфигурации журнала Tomcat Java (Catalina_home/conf/.характеристики).

2. Скачать библиотеку Juli Log4j Tomcat (Tomcat-Juli.jar) из загрузки Tomcat’ Раздел дополнения (http: // tomcat.апач.org/download-70.CGI). Поместите загруженный файл в каталог Catalina_home/bin.

3. Скачать библиотеку Tomcat Juli Adapters (Tomcat-Juli-Adapters.jar) из загрузки Tomcat’ Дополнительный раздел. Поместите этот файл в каталог Catalina_home/Lib.

4. Скачать log4j (версия 1.2 или позже) и поместите загруженный файл библиотеки в каталог Catalina_home/Lib.

5. Создать файл конфигурации log4j в следующем месте: catalina_home/lib/log4j.характеристики. Проверьте ниже конфигурацию log4j, соответствующая конфигурации журнала Java по умолчанию.

6. Перезапустите Tomcat.

File Configuration File Log4J Сопоставление настройки журнала Tomcat по умолчанию:

log4j.rootlogger = info, catalina # определить все приложения log4j.Приложение.Каталина = орг.апач.log4j.DailyrollingFileAppender log4j.Приложение.Каталина.File = $/logs/catalina. log4j.Приложение.Каталина.Append = true log4j.Приложение.Каталина.Encoding = UTF-8 # перевернуть журнал один раз в день log4j.Приложение.Каталина.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.Каталина.макет = орг.апач.log4j.PatternLayout log4j.Приложение.Каталина.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Localhost = org.апач.log4j.DailyrollingFileAppender log4j.Приложение.Местный хост.File = $/logs/localhost. log4j.Приложение.Местный хост.Append = true log4j.Приложение.Местный хост.Encoding = UTF-8 log4j.Приложение.Местный хост.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.Местный хост.макет = орг.апач.log4j.PatternLayout log4j.Приложение.Местный хост.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Менеджер = орг.апач.log4j.DailyrollingFileAppender log4j.Приложение.МЕНЕДЖЕР.File = $/logs/Manager. log4j.Приложение.МЕНЕДЖЕР.Append = true log4j.Приложение.МЕНЕДЖЕР.Encoding = UTF-8 log4j.Приложение.МЕНЕДЖЕР.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.МЕНЕДЖЕР.макет = орг.апач.log4j.PatternLayout log4j.Приложение.МЕНЕДЖЕР.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Host-Manager = org.апач.log4j.DailyrollingFileAppender log4j.Приложение.Хозяин.File = $/logs/host-manager. log4j.Приложение.Хозяин.Append = true log4j.Приложение.Хозяин.Encoding = UTF-8 log4j.Приложение.Хозяин.DatePattern = '.'yyyy-mm-dd'.log 'log4j.Приложение.Хозяин.макет = орг.апач.log4j.PatternLayout log4j.Приложение.Хозяин.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.Приложение.Консоль = орг.апач.log4j.Consoleappender log4j.Приложение.КОНСОЛЬ.Encoding = UTF-8 log4j.Приложение.КОНСОЛЬ.макет = орг.апач.log4j.PatternLayout log4j.Приложение.КОНСОЛЬ.макет.ConversionPattern = %d [ %t] %-5p %c- %m %n # Настройка, какое журнал регистрации, на которые придаются аппендеры log4j.регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[localhost] = info, localhost log4j.регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].[/Manager] = Info, Manager log4j.регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].[/host-manager] = info, host-manager

Tomcat теперь будет использовать log4j для всех внутренних журналов.

Чтобы понять выше

Элементы конфигурации для log4j’S PatternLayout

%d Дата ведения журнала. Вы можете указать шаблон даты в кудрявых скобках ( %d) %c Полностью квалифицированное имя класса (используйте %c, чтобы распечатать только простое имя класса) %T Имя потока, где произошло журналирование %f файл file -filen имени регистрации. %

Вот некоторые из примеров шаблона и записи, которые они сгенерировали:

%d [ %t] %-5p %c- %m %n 2011-09-07 14: 07: 41,509.

%5p [%t] (%f:%l) -%m%n info [main] (myntclass.Java: 12) - выполнение.

Для получения дополнительной информации о Log4J Checkout ниже ссылки:

http: // журналирование.апач.org/log4j/index.HTML

В случае любой проблемы © Copyright или отсутствующие кредиты, пожалуйста, проверьте страницу авторских прав на более быстрое разрешение.

Как статья. Поделиться.

  • Нажмите, чтобы распечатать (открывается в новом окне)
  • Нажмите, чтобы отправить ссылку на другу (открывается в новом окне)
  • Нажмите, чтобы поделиться на Reddit (открывается в новом окне)
  • Нажмите, чтобы поделиться на Pinterest (открывается в новом окне)
  • Нажмите, чтобы поделиться на LinkedIn (открывается в новом окне)
  • Нажмите, чтобы поделиться на WhatsApp (открывается в новом окне)
  • Нажмите, чтобы поделиться в Twitter (открывается в новом окне)
  • Нажмите, чтобы поделиться на Facebook (открывается в новом окне)
  • Нажмите, чтобы поделиться на Tumblr (открывается в новом окне)
  • Нажмите, чтобы поделиться в кармане (открывается в новом окне)
  • Нажмите, чтобы поделиться на Telegram (открывается в новом окне)
  • Нажмите, чтобы поделиться по Skype (открывается в новом окне)

Как рекомендовать: настроить Tomcat 9 для регистрации через log4j2

Как можно перенаправить внутреннюю регистрацию Tomcat 9 (Catalina и Localhost) на log4j2? Несмотря на то, что для более старых версий Tomcat и Log4J доступно много руководств, я не смог найти ничего «полного» в отношении Tomcat 9 и Log4J2; Документация Apache Tomcat 9 указывает на «инструкции, предоставленные альтернативной структурой регистрации», и состояния документации Apache Log4J (имена JAR в 2. исправленный):

  1. Создание набора каталогов в доме Catalina с именем log4j2/lib и log4j2/conf.
  2. Размещение log4j-api-2.12.0.Jar, log4j-core-2.12.0.jar и log4j-appserver-2.12.0.JAR в каталоге LOG4J2/LIB.
  3. Создание файла с именем log4j2-tomcat.XML, log4j2-tomcat.json, log4j2-tomcat.Yaml, log4j2-tomcat.yml, или log4j2-tomcat.Свойства в каталоге log4j2/conf.
  4. Создать или изменить setenv.SH в каталоге Tomcat Bin, чтобы включить ClassPath = $ catalina_home/log4j2/lib/*: $ catalina_home/log4j2/conf

Но что вставить в этот log4j2-tomcat.* файл конфигурации?

спросил 5 июля 2019 года в 12:33

682 1 1 Золотой значок 6 6 Серебряных значков 17 17 Бронзовые значки

2 ответа 2

Я нашел образец файла свойств в документации Apache Tomcat 7, но, поскольку это предназначено для использования с log4j 1.x, мне пришлось адаптировать его к синтаксису файлов log4j2. Это результат:

# '' Status 'относится к сообщениям журнала из log4j2 самостоятельно MonitorInterval = 30 Status = Свойство WARN.loglevel.Catalina = информационная собственность.loglevel.LocalHost = Info Property.LayOutPattern.Каталина = %D %-5p [ %t] %-22.22C %M %N Propertome.LayOutPattern.localhost = %d %-5p [ %t] %-30.30C %M %N # перевернуть журналы один раз в месяц, используя CrontriggerPolicy. свойство.FEALEDATEPATTERN.Каталина = %D Собственность.FEALEDATEPATTERN.localhost = %d свойство.Crontriggerschedule.Каталина = 0 0 0 1 * ? свойство.Crontriggerschedule.localhost = 0 0 0 1 * ? ## appenders # n.Беременный.: - Нет необходимости указывать «appenders = catalina, localhost, console» #, поскольку эти идентификаторы не содержат ».' персонажи. # - Подкомпонентные идентификаторы «политики» и «cron» произвольно # выбраны; Фактический тип указан через атрибут «Тип». # - 'DirectWriterOlloverStrategy' используется автоматически, поскольку не указано «файл». Приложение.Каталина.Тип = приложение RollingFile.Каталина.name = rollingfile-catalina appender.Каталина.filePattern = $/logs/catalina.$.Журнал приложение.Каталина.макет.type = patternlayout appender.Каталина.макет.шаблон = $ appender.Каталина.политики.Тип = Политика Приложение.Каталина.политики.крон.type = crontriginging ppolicy appender.Каталина.политики.крон.График = $ appender.Каталина.политики.крон.revaliateonstartup = true appender.Каталина.FilePermissions = RW-R ----- Приложение.Каталина.FileOWONER = TOMCAT PARTENDER.Каталина.fileGroup = adm appender.Местный хост.Тип = приложение RollingFile.Местный хост.name = rollingfile-localhost appender.Местный хост.filePattern = $/logs/localhost.$.Журнал приложение.Местный хост.макет.type = patternlayout appender.Местный хост.макет.шаблон = $ appender.Местный хост.политики.Тип = Политика Приложение.Местный хост.политики.крон.type = crontriginging ppolicy appender.Местный хост.политики.крон.График = $ appender.Местный хост.политики.крон.revaliateonstartup = true appender.Местный хост.FilePermissions = RW-R ----- Приложение.Местный хост.FileOWONER = TOMCAT PARTENDER.Местный хост.FileGroup = ADM # безрассудка, если вы хотите продолжать войти в Catalina.выйти после того, как log4j2 вступает во владение. #papender.КОНСОЛЬ.type = console #appender.КОНСОЛЬ.name = stdout #appender.КОНСОЛЬ.макет.type = patternlayout ## Настройка журнала регистраторов, на которые придаются аппендеры rootlogger.уровень = $ rootlogger.AppenderRef.Каталина.ref = rollingfile-catalina #rootlogger.AppenderRef.stdout.ref = stdout # Здесь идентификатор содержит '.'символы, поэтому мы должны указать список. Loggers = org.апач.Каталина.основной.Контейнербаза.[Каталина].[localhost] регистратор.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].name = localhost logger.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].Level = $ logger.орг.апач.Каталина.основной.Контейнербаза.[Каталина].[Localhost].AppenderRef.Местный хост.ref = rollingfile-localhost 

Основная причина, по которой я использую log4j2, состояла в том, чтобы иметь ежемесячное вращение журнала, но вы можете легко настроить все, как вам нравится, даже без перезапуска Tomcat.