Содержание

неожиданное исключение: java.lang.NoClassDefFoundError: org/apache/log4j/LogManager — CodeRoad



Я разрабатываю приложение GWT. Он использует RPC для сбора информации из внутренней системы. Он делает это с помощью библиотеки jar, давайте назовем ее alpha.jar. Мы используем этот jar во многих приложениях, так что он отлично работает, и кстати, он построен с ANT, вне eclipse.

Некоторые классы в alpha.jar ссылаются на LOG4J2, а также множество других внешних банок, поэтому, когда мы запускаем приложение, мы передаем classpath всем этим, и все работает нормально . Обратите внимание, что это не простая проблема для начинающих. alpha.jar работает так, как должно, включая вызовы Log4J.

Проблема:

В Eclipse у меня есть этот проект приложения GWT, а также проект Alpha.jar (с исходным кодом, конечно). Серверная часть должна создавать экземпляры Альфа-объектов и связываться с Альфа-системой.

Когда вы делаете это в GWT, добавляя build-path-reference в Альфа-Проект, мое приложение GWT работает нормально.

Когда я вместо ссылки на проект включаю (в war/WEB-INF/lib) alpha.jar и запускаю приложение, я получаю ошибку в названии при первом создании экземпляра класса из alpha.jar.

Нет никаких особенностей в том, как построен alpha.jar, так что в основном это должно быть то же самое, что и проект в eclipse, верно?

Обратите внимание на следующее:

*) зависимые банки alpha.jar’s также находятся в war/WEB-INF/lib. log4j2-core, log4j-api, а также в куче других (например, apache common)

*) если я удалю alpha.jar (и код, который его вызывает) и вместо этого просто добавлю код, который называется LOG4J2, этот код также будет работать нормально!

Почему я получаю эту странную ошибку при использовании JAR?? Обратите внимание также на NoClassDefFoundError, это не более распространенный ClassNotFoundException. Пожалуйста, посмотрите, какие причины и каковы различия между NoClassDefFoundError и ClassNotFoundException?

Если вам нужна дополнительная информация, дайте мне знать.

java eclipse gwt jar
Поделиться Источник Peter Andersson     13 октября 2014 в 10:58

3 ответа


  • log4j2 java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager

    Я использую log4j 2.3 в своем приложении java. Я добавил зависимость через maven. При запуске программы в eclipse все работает нормально, но когда я упаковываю ее с maven и пытаюсь запустить jar, я получаю следующую ошибку: Exception in thread main java.lang.NoClassDefFoundError: org/apache…

  • Исключение в потоке «main» java.lang.NoClassDefFoundError: org/apache/log4j/ProvisionNode

    Я запускаю какой-то очень старый унаследованный код, который работал в прошлом. На этот раз он выдает мне следующую ошибку Exception in thread main java.lang.NoClassDefFoundError: org/apache/log4j/ProvisionNode Строка, которая вызывает ошибку public static org.apache.log4j.Logger…



14

org.apache.log4j.LogManager -это класс из log4j 1.2 (не log4j2).

Поэтому одна из ваших банок веб-приложений должна ссылаться на нее. Виновник должен быть виден в стеке trace.

В зависимости от ваших обстоятельств вы можете просто добавить log4j 1.2 jar в веб-приложение, поскольку эти две версии полностью независимы друг от друга.

Поделиться Steve C     13 октября 2014 в 14:02



1

Если вы используете log4j 2, пожалуйста, не забудьте назвать свой log4

j2 .xml вместо log4j.xml

Поделиться albgorski     15 января 2017 в 18:25



1

как упоминалось ранее:

org. apache.log4j.LogManager -это класс из log4j 1.2 (не log4j2).

эта проблема возникает, когда вы комбинируете использование log4j 1.2 и log4j 2.x, возможно. таким образом, вы должны добавить bridge api в свой проект.

это проблема Migrating .

добавить те, чтобы вы pom.xml

        <log4j2.version>2.7</log4j2.version>
        <disruptor.version>3.3.6</disruptor.version>

        <!--log4j2 dependencies -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>${disruptor.version}</version>
        </dependency>

затем, вы могли бы использовать mvn dependency:resolve , чтобы посмотреть, нет log4j 1. 2

[INFO] The following files have been resolved:
[INFO]    org.springframework.data:spring-data-redis:jar:1.7.2.RELEASE:compile
[INFO]    org.apache.logging.log4j:log4j-api:jar:2.7:compile
[INFO]    org.apache.logging.log4j:log4j-slf4j-impl:jar:2.7:compile
[INFO]    com.lmax:disruptor:jar:3.3.6:compile
[INFO]    org.apache.logging.log4j:log4j-1.2-api:jar:2.7:compile
[INFO]    javax.mail:mail:jar:1.4.5:compile
[INFO]    org.springframework:spring-tx:jar:4.3.1.RELEASE:compile
[INFO]    org.apache.logging.log4j:log4j-core:jar:2.7:compile
[INFO]    org.apache.logging.log4j:log4j-jcl:jar:2.7:compile
[INFO]    javax.activation:activation:jar:1.1:compile
[INFO]    org.springframework:spring-beans:jar:4.3.1.RELEASE:compile
[INFO]    org.springframework:spring-web:jar:4.3.1.RELEASE:compile
[INFO]    org.springframework:spring-webmvc:jar:4.3.1.RELEASE:compile
[INFO]    org.springframework:spring-oxm:jar:4.2.6.RELEASE:compile
[INFO]    org.springframework:spring-jdbc:jar:4.3.1.RELEASE:compile
[INFO]    com.alibaba:fastjson:jar:1.2.4:compile
[INFO]    mysql:mysql-connector-java:jar:5.1.21:compile
[INFO]    org.apache.tomcat:tomcat-servlet-api:jar:7.0.54:provided
[INFO]    org.slf4j:slf4j-api:jar:1.7.21:compile
[INFO]    org.springframework:spring-context-support:jar:4.3.1.RELEASE:compile
[INFO]    commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO]    org.springframework:spring-context:jar:4.3.1.RELEASE:compile
[INFO]    org.hamcrest:hamcrest-core:jar:1.3:test
[INFO]    redis.clients:jedis:jar:2.8.1:compile
[INFO]    org.springframework:spring-expression:jar:4.3.1.RELEASE:compile
[INFO]    org.springframework.data:spring-data-commons:jar:1.12.2.RELEASE:compile
[INFO]    org.springframework.data:spring-data-keyvalue:jar:1.1.2.RELEASE:compile
[INFO]    junit:junit:jar:4.12:test
[INFO]    org.springframework:spring-core:jar:4.3.1.RELEASE:compile
[INFO]    commons-logging:commons-logging:jar:1.2:compile
[INFO]    org.springframework:spring-aop:jar:4.3.1.RELEASE:compile
[INFO]    org.
apache.commons:commons-pool2:jar:2.4.2:compile [INFO] org.slf4j:jcl-over-slf4j:jar:1.7.21:runtime

относится:

Поделиться Mark Simon     12 декабря 2018 в 12:14



Похожие вопросы:


log4j и java.lang.NoClassDefFoundError: org/apache/log4j/Layout

Я пытаюсь заставить часть кода работать с log4j. Если я запускаю его через junit теста (ant задачи), я получаю правильные лог-выходы, и все в порядке. Если я запускаю код из командной строки, то…


Вызвано: java.lang.NoClassDefFoundError: org/apache/log4j/Logger

У меня есть интересная проблема, в которой класс org.apache.log4j.Logger не найден во время выполнения. Я пытаюсь получить разрешение, и именно здесь это терпит неудачу: OAuthAuthorizer…


java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator

У меня есть следующие банки в моем проекте: antlr.jar commons.collections-3.2.1.jar dom4j-1.6.jar hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.0.1.Final.jar…


log4j2 java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager

Я использую log4j 2.3 в своем приложении java. Я добавил зависимость через maven. При запуске программы в eclipse все работает нормально, но когда я упаковываю ее с maven и пытаюсь запустить jar, я…


Исключение в потоке «main» java.lang.NoClassDefFoundError: org/apache/log4j/ProvisionNode

Я запускаю какой-то очень старый унаследованный код, который работал в прошлом. На этот раз он выдает мне следующую ошибку Exception in thread main java.lang.NoClassDefFoundError:…


Исключение в потоке «main» java.lang.NoClassDefFoundError: org/apache/logging/log4j/message/Message

Исключение в потоке main java.lang.NoClassDefFoundError: org/apache/logging/log4j/message/Message в com. prac.Loger. (Loger.java:34) Вызвано: java.lang.ClassNotFoundException:…


Исключение в потоке «main» java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager

Я пытаюсь заставить log4j2 работать в Netbeans. Независимо от того, что я делаю, я получаю следующие ошибки Exception in thread main java.lang.NoClassDefFoundError:…


java.lang.NoClassDefFoundError: org/apache/logging/log4j/Logger

Я хочу выполнить модульное тестирование в Elasticsearch для этого я использую Java-test-framework Я использую Elasticsearch-1.6.0 и ссылаюсь на эту ссылку для получения помощи…


Исключение: java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator

Во время запуска моего приложения ниже выбрасывается исключение: Jun 04, 2018 10:37:39 AM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event…


Исключение в потоке «main» java.lang.NoClassDefFoundError: org/apache/log4j/Logger в сгенерированном файле jar

Я сгенерировал файл jar с Maven в идее IntelliJ. При попытке выполнить его я получаю следующее сообщение об ошибке: Исключение в потоке main java.lang.NoClassDefFoundError: org/apache/log4j/Logger Я…

Как понять, почему вырубается log4j? — Хабр Q&A

Деплою я, значит, приложеньку свою… Спринг там, на томкате… Вроде все хорошо идет, и тут бац, и….
03-Apr-2014 23:59:52.083 SEVERE [RMI TCP Connection(5)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Error filterStart
03-Apr-2014 23:59:52.084 SEVERE [RMI TCP Connection(5)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.XmlWebApplicationContext).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging. apache.org/log4j/1.2/faq.html#noconfig for more info.

Сразу скажу, log4j.properties лежит на месте, логи нормально валятся, до определенного момента. В настройках все предельно просто:

log4j.rootLogger=DEBUG, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

Последние строки перед тем, как он вырубается:

2014-04-03 23:59:52,067 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.filter.CharacterEncodingFilter - Initializing filter 'encodingFilter'
2014-04-03 23:59:52,080 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.filter.CharacterEncodingFilter - Filter 'encodingFilter' configured successfully
2014-04-03 23:59:52,081 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.context.support.StandardServletEnvironment - Adding [servletConfigInitParams] PropertySource with lowest search precedence
2014-04-03 23:59:52,081 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.context.support.StandardServletEnvironment - Adding [servletContextInitParams] PropertySource with lowest search precedence
2014-04-03 23:59:52,081 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.context.support.StandardServletEnvironment - Adding [jndiProperties] PropertySource with lowest search precedence
2014-04-03 23:59:52,081 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.context.support.StandardServletEnvironment - Adding [systemProperties] PropertySource with lowest search precedence
2014-04-03 23:59:52,082 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.context.support.StandardServletEnvironment - Adding [systemEnvironment] PropertySource with lowest search precedence
2014-04-03 23:59:52,082 [RMI TCP Connection(5)-127.0.0.1] DEBUG org.springframework.web.context.support.StandardServletEnvironment - Initialized StandardServletEnvironment with PropertySources [servletConfigInitParams,servletContextInitParams,jndiProperties,systemProperties,systemEnvironment]
2014-04-03 23:59:52,082 [RMI TCP Connection(5)-127. 0.0.1] DEBUG org.springframework.web.filter.DelegatingFilterProxy - Initializing filter 'springSecurityFilterChain'

В других логах томката-каталины пусто. Так-то понимаю, что, скорее всего, чего-то не то с зависимостями, но без логов слишком сложно понять. Цель — разобраться с логером, понять, почему такое происходит, и пофиксить. 🙂

Курсы Apache Log4j

Местные курсы Apache Log4j под руководством местных инструкторов в Russia.

Henk Huybrechts

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Florin Diaconu

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Juan Curiel

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Jayaraman Ramansubramaniam

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Palawan Pawnshop — Palawan Express Pera Padala

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

BOYET NAZON — Palawan Pawnshop — Palawan Express Pera Padala

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Hiel Umiten — Palawan Pawnshop — Palawan Express Pera Padala

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Allan Rae Saac — Palawan Pawnshop — Palawan Express Pera Padala

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Palawan Pawnshop — Palawan Express Pera Padala

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Michelle Baluran — Palawan Pawnshop — Palawan Express Pera Padala

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Palawan Pawnshop — Palawan Express Pera Padala

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Курсы: Systems and Service Architecture — Microservices Architecture

Machine Translated

Apache Log4j Содержание курса

14 часов

Обзор

This instructor-led, live training in Russia (online or onsite) is aimed at software engineers who wish to use Apache Log4j for logging data and messages.

By the end of this training, participants will be able to:

— Use Apache Log4j for logging application messages and data.
— Automate the configuration of appenders, pattern converters, layouts, and more.
— Implement advanced filtering to all events before being passed to appenders.

Другие регионы

выбрать регион

другие страны

выходные Apache Log4j курсы, курсы Apache Log4j выходного дня, вечерние Apache Log4j курсы, Apache Log4j технические учебные курсы, Apache Log4j буткемп, Apache Log4j буткэмп, Apache Log4j курсы с инструктором, Apache Log4j тренинг с инструктором, выходной Apache Log4j тренинг, тренинг Apache Log4j выходного дня, вечерние Apache Log4j курсы, Apache Log4j коачинг, Apache Log4j тренерство, Apache Log4j тренинг, Apache Log4j инструктор, Apache Log4j тренер, Apache Log4j коач, Apache Log4j курсы, Apache Log4j занятия, Apache Log4j локальные, Apache Log4j частные занятия, Apache Log4j частные курсы, Apache Log4j индивидуальный тренинг, Apache Log4j индивидуальные занятия

Log4j — Настройка Log4j 2

Документация Log4j ссылается на ряд свойств системы, которые можно использовать для управления различными аспектами. поведения Log4j 2. В таблице ниже перечислены эти свойства вместе с их значениями по умолчанию и описание того, что они контролируют. Любые пробелы в имени свойства предназначены для визуального оформления и должны быть удалены.

Обратите внимание, что, начиная с Log4j 2.10, все имена системных свойств были нормализованы, чтобы следовать согласованному схема именования.Хотя старые имена свойств по-прежнему поддерживаются для обратной совместимости, это рекомендуется обновить конфигурации, чтобы использовать новый стиль. Эта система расширяема и включена сквозь PropertySource интерфейс. Дополнительные классы источников свойств могут быть добавлены через стандартный ServiceLoader. механизм в Java SE.

Свойства могут быть переопределены источниками с более низким приоритетом числа (например, -100 предшествует 100).В по умолчанию доступны следующие источники:

Ниже приведен список доступных свойств глобальной конфигурации. Обратите внимание, что их можно установить только один раз. на процесс JVM, в отличие от параметров конфигурации, доступных в файлах конфигурации.Название свойства столбец содержит имя, используемое в файлах свойств и свойствах системы; Environemt Переменная для эквивалентной переменной среды; и Legacy Property Name для имени до 2.10.

Приоритеты и описание PropertySource
Источник Приоритет Описание
Переменные среды -100 Все переменные среды имеют префикс LOG4J_, все заглавные буквы, а все слова разделенные подчеркиванием.Только эта схема именования поддерживает переменные среды, как и раньше. нет старых схем именования, с которыми необходимо поддерживать совместимость.
файл log4j2.component.properties 0 Включение этого файла в путь к классам можно использовать как альтернативу предоставлению свойств как системных характеристики. Это имеет приоритет над системными свойствами, но они могут быть отменены средой. переменные, как описано выше.
Свойства системы 100 Все свойства могут быть установлены с использованием обычных шаблонов системных свойств. У них самый низкий приоритет и могут быть переопределены включенными файлами свойств или переменными среды.
Log4j 2 глобальных свойства конфигурации
Имя свойства
(имя устаревшего свойства)
Переменная среды Значение по умолчанию Описание
log4j2.конфигурационный файл
(файл log4j.configurationFile)
LOG4J_CONFIGURATION_FILE Путь к файлу конфигурации Log4j 2. Также может содержать список имен файлов конфигурации, разделенных запятыми. Может содержать URL-адрес. При указании в качестве URL-адреса параметр запроса override может использоваться для указания дополнительных расположение файлов конфигурации.
log4j2.debug
(log4j2.debug)
LOG4J_DEBUG Log4j2 будет выводить все внутренние журналы на консоль, если свойство системы log4j2.debug определен (с любым значением или без него).
log4j2.mergeStrategy
(log4j.mergeStrategy)
LOG4J_MERGE_STRATEGY Имя класса, реализующего интерфейс MergeStrategy. Если не указано DefaultMergeStrategy будет использоваться при создании CompositeConfiguration ..
log4j2. contextSelector
(Log4jContextSelector)
LOG4J_CONTEXT_SELECTOR ClassLoaderContextSelector Создает LoggerContexts.Приложение может иметь один или несколько активных LoggerContexts в зависимости от по обстоятельствам. См. Раздел Разделение журналов для более подробной информации. Доступные классы реализации селектора контекста:
org.apache.logging.log4j.core.async .AsyncLoggerContextSelector — делает все регистраторы асинхронными.
org.apache.logging.log4j.core.selector .BasicContextSelector — создает единый общий контекст LoggerContext.
org.apache.logging.log4j.core.selector .ClassLoaderContextSelector — отдельные LoggerContexts для каждого веб-приложения.
org.apache.logging.log4j.core.selector .JndiContextSelector — используйте JNDI для определения местоположения LoggerContext каждого веб-приложения.
org.apache.logging.log4j.core.osgi .BundleContextSelector — отдельные LoggerContexts для каждого пакета OSGi.
log4j2.logEventFactory
(Log4jLogEventFactory)
LOG4J_LOG_EVENT_FACTORY org.apache.logging.log4j.core.impl .DefaultLogEventFactory Класс фабрики, используемый LoggerConfig для создания экземпляров LogEvent.(Игнорируется при использовании AsyncLoggerContextSelector.)
log4j2.loggerContextFactory
(log4j2.loggerContextFactory)
LOG4J_LOGGER_CONTEXT_FACTORY org.apache.logging.log4j.simple .SimpleLoggerContextFactory Заводской класс, используемый LogManager для начальной загрузки реализации ведения журнала. Ядро ядра предоставляет org.apache.logging.log4j.core .impl.Log4jContextFactory.
log4j2.configurationFactory
(log4j.configurationFactory)
LOG4J_CONFIGURATION_FACTORY Полностью указанное имя класса, расширяющего org. apache.logging.log4j.core .config.ConfigurationFactory. Если указано, экземпляр этого класса добавляется в список фабрик конфигурации.
log4j2.shutdownHookEnabled
(log4j.shutdownHookEnabled)
LOG4J_SHUTDOWN_HOOK_ENABLED правда Переопределяет глобальный флаг, указывающий, следует ли использовать ловушку выключения для остановки LoggerContext.По умолчанию это включено и может быть отключено в зависимости от конфигурации. При работе с log4j-web, он автоматически отключается.
log4j2.shutdownCallbackRegistry
(log4j.shutdownCallbackRegistry)
LOG4J_SHUTDOWN_CALLBACK_REGISTRY org.apache.logging.log4j.core.util .DefaultShutdownCallbackRegistry Полностью указанное имя класса, реализующего ShutdownCallbackRegistry.Если указано, экземпляр этого класса используется вместо DefaultShutdownCallbackRegistry. У указанного класса должен быть конструктор по умолчанию.
log4j2.clock
(log4j.Clock)
LOG4J_CLOCK Системные часы Реализация org.apache.logging.log4j .core.util.Clock интерфейс, который используется для отметки времени событий журнала.
По умолчанию System.currentTimeMillis вызывается при каждом событии журнала.
Вы также можете указать полное имя класса для настраиваемого класса, реализующего Интерфейс часов.
log4j2.level
(org.apache.logging.log4j.level)
LOG4J_LEVEL ОШИБКА Уровень журнала конфигурации по умолчанию. Конфигурация по умолчанию используется, если ConfigurationFactory не удалось создать конфигурацию (например, файл log4j2.xml не найден).
log4j2.disableThreadContext
(disableThreadContext)
LOG4J_DISABLE_THREAD_CONTEXT ложь Если true, стек и карта ThreadContext отключены. (Может игнорироваться, если указана настраиваемая карта ThreadContext.)
log4j2.disableThreadContextStack
(disableThreadContextStack)
LOG4J_DISABLE_THREAD_CONTEXT_STACK ложь Если true, стек ThreadContext отключен.
log4j2.disableThreadContextMap
(disableThreadContextMap)
LOG4J_DISABLE_THREAD_CONTEXT_MAP ложь Если true, отображение ThreadContext отключено. (Может игнорироваться, если указана настраиваемая карта ThreadContext.)
log4j2.threadContextMap
(log4j2.threadContextMap)
LOG4J_THREAD_CONTEXT_MAP Полностью указанное имя класса настраиваемого класса реализации ThreadContextMap.
log4j2.isThreadContextMapInheritable
(isThreadContextMapInheritable)
LOG4J_IS_THREAD_CONTEXT_MAP_INHERITABLE ложь Если true, используйте InheritableThreadLocal для реализации карты ThreadContext. В противном случае используйте простой ThreadLocal. (Может игнорироваться, если указана настраиваемая карта ThreadContext.)
log4j2.contextDataInjector
(log4j2.ContextDataInjector)
LOG4J_CONTEXT_DATA_INJECTOR Полностью указанное имя класса настраиваемого класса реализации ContextDataInjector.
log4j2.garbagefreeThreadContextMap
(log4j2.garbagefree.threadContextMap)
LOG4J_GARBAGEFREE_THREAD_CONTEXT_MAP ложь Укажите «true», чтобы очистить карту ThreadContext от мусора.
log4j2.disableJmx
(log4j2.disable.jmx)
LOG4J_DISABLE_JMX ложь Если true, объекты конфигурации Log4j, такие как LoggerContexts, Appenders, Loggers и т. Д.не будет оснащаться компонентами MBean, и их нельзя будет контролировать и управлять удаленно.
log4j2.jmxNotifyAsync
(log4j2.jmx.notify.async)
LOG4J_JMX_NOTIFY_ASYNC false для веб-приложений, true в противном случае Если true, JMX-уведомления log4j отправляются из отдельного фонового потока, в противном случае они отправляются из потока вызывающего абонента. Если системное свойство log4j2.is.webapp истинно или javax.servlet.Servlet класс находится в пути к классам, поведение по умолчанию заключается в использовании потока вызывающего абонента для отправки уведомлений JMX.
log4j2.skipJansi
(log4j.skipJansi)
LOG4J_SKIP_JANSI правда Если true, ConsoleAppender не будет пытаться использовать выходной поток Jansi в Windows.
log4j2.ignoreTCL
(log4j.ignoreTCL)
LOG4J_IGNORE_TCL ложь Если true, классы загружаются только загрузчиком классов по умолчанию.В противном случае выполняется попытка загрузить классы с помощью загрузчика классов контекста текущего потока. прежде чем вернуться к загрузчику классов по умолчанию.
log4j2.uuidSequence
(org.apache.logging.log4j.uuidSequence)
LOG4J_UUID_SEQUENCE 0 Системное свойство, которое может использоваться для заполнения генерации UUID целочисленным значением.
log4j2.simplelogShowContextMap
(орг.apache.logging.log4j .simplelog.showContextMap)
LOG4J_SIMPLELOG_SHOW_CONTEXT_MAP ложь Если true, полная карта ThreadContext включается в каждое сообщение журнала SimpleLogger.
log4j2. simplelogShowlogname
(org.apache.logging.log4j .simplelog.showlogname)
LOG4J_SIMPLELOG_SHOWLOGNAME ложь Если true, имя регистратора включается в каждое сообщение журнала SimpleLogger.
log4j2.simplelogShowShortLogname
(org.apache.logging.log4j .simplelog.showShortLogname)
LOG4J_SIMPLELOG_SHOW_SHORT_LOGNAME правда Если true, в сообщения журнала SimpleLogger включается только последний компонент имени регистратора. (Например, если имя регистратора — «mycompany.myproject.mycomponent», в журнал будет записано только «mycomponent».
log4j2.simplelogShowdatetime
(орг.apache.logging.log4j .simplelog.showdatetime)
LOG4J_SIMPLELOG_SHOWDATETIME ложь Если истина, сообщения журнала SimpleLogger содержат информацию о метке времени.
log4j2.simplelogDateTimeFormat
(org.apache.logging.log4j .simplelog.dateTimeFormat)
LOG4J_SIMPLELOG_DATE_TIME_FORMAT «гггг / ММ / дд ЧЧ: мм: сс: SSS zzz» Используемый формат даты и времени. Игнорируется, если org.apache.logging.log4j .simplelog.showdatetime является ложным.
log4j2.simplelogLogFile
(org.apache.logging.log4j .simplelog.logFile)
LOG4J_SIMPLELOG_LOG_FILE system.err «system.err» (без учета регистра) журналов в System.err, «system.out» (без учета регистра) регистрирует в System.out, любое другое значение интерпретируется как имя файла для сохранения сообщений SimpleLogger.
log4j2.simplelogLevel
(org.apache.logging.log4j .simplelog.level)
LOG4J_SIMPLELOG_LEVEL ОШИБКА Уровень по умолчанию для новых экземпляров SimpleLogger.
log4j2.simplelog. .level
(org.apache.logging.log4j .simplelog. .level)
LOG4J_SIMPLELOG_ _LEVEL Уровень журнала по умолчанию SimpleLogger Уровень журнала для экземпляра SimpleLogger с указанным именем.
log4j2.simplelogStatusLoggerLevel
(org.apache.logging.log4j.simplelog .StatusLogger.level)
LOG4J_SIMPLELOG_STATUS_LOGGER_LEVEL ОШИБКА Это свойство используется для управления начальным уровнем StatusLogger и может быть переопределено в коде путем вызова StatusLogger.getLogger () .setLevel (someLevel). Обратите внимание, что уровень StatusLogger используется только для определения уровня вывода журнала состояния. пока слушатель не будет зарегистрирован.На практике слушатель регистрируется, когда обнаруживается конфигурация, и с этого момента статусные сообщения отправляются только слушателям (в зависимости от их statusLevel).
log4j2.defaultStatusLevel
(Log4jDefaultStatusLevel)
LOG4J_DEFAULT_STATUS_LEVEL ОШИБКА

StatusLogger регистрирует события, происходящие в системе ведения журнала, на консоли. Во время настройки AbstractConfiguration регистрирует StatusConsoleListener с помощью StatusLogger, который может перенаправлять события журнала состояния из вывода консоли по умолчанию в файл.Слушатель также поддерживает тонкую фильтрацию. Это системное свойство указывает уровень журнала состояния по умолчанию, который будет использоваться слушателем, если конфигурация не укажите уровень статуса.

Примечание: это свойство используется реализацией log4j-core только после того, как был найден файл конфигурации.

log4j2.statusLoggerLevel
(log4j2. StatusLogger.level)
LOG4J_STATUS_LOGGER_LEVEL ПРЕДУПРЕЖДЕНИЕ

Начальный «listenersLevel» для StatusLogger.Если добавлены слушатели StatusLogger, listenerLevel изменяется на самый подробный слушатель. Если зарегистрированы какие-либо слушатели, listenerLevel будет используется, чтобы быстро определить, существует ли заинтересованный слушатель.

По умолчанию слушатели StatusLogger добавляются при нахождении конфигурации и JMX StatusLoggerAdmin MBean. Например, если конфигурация содержит зарегистрирован прослушиватель со статусом statusLevel TRACE а для StatusLogger listenerLevel задано значение TRACE, в результате чего на консоли отображаются подробные сообщения о состоянии.

Если слушатели не зарегистрированы, listenersLevel не используется, а выходной уровень StatusLogger определяется StatusLogger.getLogger (). getLevel () (см. свойство org.apache.logging.log4j.simplelog .StatusLogger.level).

log4j2.statusEntries
(log4j2.status.entries)
LOG4J_STATUS_ENTRIES 200 Количество событий StatusLogger, которые хранятся в буфере и могут быть получены с помощью StatusLogger.getStatusData ().
log4j2.statusLoggerDateformat
(log4j2.StatusLogger.DateFormat)
LOG4J_STATUS_LOGGER_DATEFORMAT Строка формата даты и времени для использования в качестве формата меток времени в выходных данных регистратора состояний. См. Java.text.SimpleDateFormat для получения информации о поддерживаемых форматах.
log4j2.asyncLoggerExceptionHandler
(AsyncLogger.ExceptionHandler)
LOG4J_ASYNC_LOGGER_EXCEPTION_HANDLER обработчик по умолчанию См. Подробности в Системных свойствах Async Logger.
log4j2.asyncLoggerRingBufferSize
(AsyncLogger.RingBufferSize)
LOG4J_ASYNC_LOGGER_RING_BUFFER_SIZE 256 * 1024 или 4 * 1024 в режиме без мусора См. Подробности в Системных свойствах Async Logger.
log4j2.asyncLoggerWaitStrategy
(AsyncLogger.WaitStrategy)
LOG4J_ASYNC_LOGGER_WAIT_STRATEGY Тайм-аут См. Подробности в Системных свойствах Async Logger.
log4j2.asyncLoggerTimeout
(AsyncLogger.Timeout)
LOG4J_ASYNC_LOGGER_TIMEOUT 10 См. Подробности в Системных свойствах Async Logger.
log4j2.asyncLoggerSleepTimeNs
(AsyncLogger.SleepTimeNs)
LOG4J_ASYNC_LOGGER_SLEEP_TIME_NS 100 См. Подробности в Системных свойствах Async Logger.
log4j2.asyncLoggerRetries
(AsyncLogger.Retries)
LOG4J_ASYNC_LOGGER_SLEEP_TIME_NS 200 См. Подробности в Системных свойствах Async Logger.
AsyncLogger.SynchronizeEnqueueWhenQueueFull ASYNC_LOGGER_SYNCHRONIZE_ENQUEUE_WHEN_QUEUE_FULL правда См. Подробности в Системных свойствах Async Logger.
log4j2.asyncLoggerThreadNameStrategy
(AsyncLogger.ThreadNameStrategy)
LOG4J_ASYNC_LOGGER_THREAD_NAME_STRATEGY КЕШЕНО См. Подробности в Системных свойствах Async Logger.
log4j2.asyncLoggerConfigExceptionHandler
(AsyncLoggerConfig.ExceptionHandler)
LOG4J_ASYNC_LOGGER_CONFIG_EXCEPTION_HANDLER обработчик по умолчанию Дополнительные сведения см. В разделе «Свойства системы смешанного асинхронного / синхронного регистратора».
log4j2.asyncLoggerConfigRingBufferSize
(AsyncLoggerConfig.RingBufferSize)
LOG4J_ASYNC_LOGGER_CONFIG_RING_BUFFER_SIZE 256 * 1024 или 4 * 1024 в режиме без мусора Дополнительные сведения см. В разделе «Свойства системы смешанного асинхронного / синхронного регистратора».
log4j2.asyncLoggerConfigWaitStrategy
(AsyncLoggerConfig.WaitStrategy)
LOG4J_ASYNC_LOGGER_CONFIG_WAIT_STRATEGY Тайм-аут Дополнительные сведения см. В разделе «Свойства системы смешанного асинхронного / синхронного регистратора».
AsyncLoggerConfig.SynchronizeEnqueueWhenQueueFull ASYNC_LOGGER_CONFIG_SYNCHRONIZE_ENQUEUE_WHEN_QUEUE_FULL правда Дополнительные сведения см. В разделе «Свойства системы смешанного асинхронного / синхронного регистратора».
log4j2.julLoggerAdapter
(log4j.jul.LoggerAdapter)
LOG4J_JUL_LOGGER_ADAPTER org.apache.logging.log4j .jul.ApiLoggerAdapter LoggerAdapter по умолчанию для использования в адаптере JUL.По умолчанию, если доступен log4j-core, то класс org.apache.logging.log4j.jul .CoreLoggerAdapter будет использоваться. В противном случае Будет использоваться ApiLogggerAdapter. Пользовательские реализации должны предоставлять общедоступный конструктор по умолчанию.
log4j2.formatMsgAsync
(log4j.format.msg.async)
LOG4J_FORMAT_MSG_ASYNC ложный Если false (по умолчанию), Log4j проверяет формат сообщения в потоке вызывающего, чтобы гарантировать значение во время вызова регистратора — это значение, которое регистрируется.
log4j2.asyncQueueFullPolicy
(log4j2.AsyncQueueFullPolicy)
LOG4J_ASYNC_QUEUE_FULL_POLICY

Используется Async Logger и AsyncAppender для поддержания пропускной способности приложения, даже если базовый appender не успевает за скоростью ведения журнала, и очередь заполняется.

Если значение не указано (по умолчанию), события никогда не отбрасываются. Если очередь заполнена, вызовы logger блокируются до тех пор, пока событие не будет добавлено в очередь.

Укажите Discard, чтобы отбрасывать события, уровень которых равен или меньше порогового уровня. (ИНФОРМАЦИЯ по умолчанию), когда очередь заполнена.

log4j2.discardThreshold
(log4j2.DiscardThreshold)
LOG4J_DISCARD_THRESHOLD ИНФОРМАЦИЯ Используется DiscardingAsyncQueueFullPolicy, чтобы определить, какие события отбрасывать, когда очередь становится полным. По умолчанию уровни INFO, DEBUG и TRACE события отбрасываются, когда очередь заполняется.Это свойство действует только в том случае, если в качестве значения параметра Discard указано значение Discard. log4j2.AsyncQueueFullPolicy.
log4j2.messageFactory
(log4j2.messageFactory)
LOG4J_MESSAGE_FACTORY org.apache.logging.log4j.message. ParameterizedMessageFactory или org.apache.logging.log4j.message. ReusableMessageFactory в режиме без мусора Фабрика сообщений по умолчанию, используемая регистраторами, если фабрика не указана.
log4j2.flowMessageFactory
(log4j2.flowMessageFactory)
LOG4J_FLOW_MESSAGE_FACTORY org.apache.logging.log4j.message. DefaultFlowMessageFactory Фабрика сообщений потока по умолчанию, используемая регистраторами.
log4j2.isWebapp
(log4j2.is.webapp)
LOG4J_IS_WEBAPP истина, если класс сервлета на пути к классу Это системное свойство можно использовать, чтобы заставить Log4j 2 вести себя так, как если бы он был частью веб-приложения (если истинно) или как будто он не является частью веб-приложения (если false).
log4j2.enableThreadlocals
(log4j2.enable.threadlocals)
LOG4J_ENABLE_THREADLOCALS правда Это системное свойство можно использовать для отключения использования threadlocals, что частично отключит Поведение Log4j без мусора: чтобы быть полностью без мусора, Log4j сохраняет объекты в полях ThreadLocal для их повторного использования, в противном случае для каждого события журнала создаются новые объекты. Обратите внимание, что это свойство не действует, если Log4j обнаруживает, что оно запущено в веб-приложении.
log4j2.enableDirectEncoders
(log4j2.enable.direct.encoders)
LOG4J_ENABLE_DIRECT_ENCODERS правда Это свойство можно использовать для принудительного возврата макетов и приложений с учетом мусора к исходному состоянию. поведение до версии 2.6, при котором преобразование событий журнала в текст генерирует временные объекты, такие как Строки и массивы char [], и преобразование этого текста в байты генерирует временные массивы byte []. По умолчанию это свойство имеет значение true, а макеты и приложения с учетом мусора, которые конвертируют события журнала. to text преобразует этот текст в байты без создания временных объектов.
log4j2.initialReusableMsgSize
(log4j.initialReusableMsgSize)
LOG4J_INITIAL_REUSABLE_MSG_SIZE 128 В режиме без сборщика мусора это свойство определяет начальный размер повторно используемых StringBuilders, в которых сообщение текст форматируется и потенциально передается в фоновые потоки.
log4j2.maxReusableMsgSize
(log4j.maxReusableMsgSize)
LOG4J_MAX_REUSABLE_MSG_SIZE 518 В режиме без сборщика мусора это свойство определяет максимальный размер повторно используемых StringBuilders, в которых сообщение текст форматируется и потенциально передается в фоновые потоки.
log4j2.layoutStringBuilderMaxSize
(log4j.layoutStringBuilder.maxSize)
LOG4J_LAYOUT_STRING_BUILDER_MAX_SIZE 2048 Это свойство определяет максимальный размер многоразовых объектов StringBuilders, локально используемых в потоке. используется для форматирования события журнала в текст с помощью макетов, расширяющих AbstractStringLayout.
log4j2.unboxRingbufferSize
(log4j.unbox.ringbuffer.size)
LOG4J_UNBOX_RINGBUFFER_SIZE 32 Орг.Утилита apache.logging.log4j.util.Unbox управляет небольшим кольцевым буфером локального потока StringBuilders. Каждый раз, когда вызывается один из методов box (), используется следующий слот в кольцевом буфере, пока кольцо буфер заполнен, и первый слот используется повторно. По умолчанию кольцевой буфер распаковки имеет 32 слота, поэтому пользовательский код может иметь до 32 примитивов в штучной упаковке за один вызов регистратора.

Если требуется больше слотов, установите для системного свойства log4j.unbox.ringbuffer.size желаемый размер кольцевого буфера.Обратите внимание, что указанное число будет округлено до ближайшей степени 2.

log4j2.loggerContextStacktraceOnStart
(log4j.LoggerContext.stacktrace.on.start)
LOG4J_LOGGER_CONTEXT_STACKTRACE_ON_START ложь Печатает трассировку стека в регистратор состояния на уровне DEBUG при запуске LoggerContext. В целях отладки.
log4j2.formatMsgNoLookups
(log4j2.formatMsgNoLookups)
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS ложь Отключает глобальный поиск шаблонов сообщений, если задано значение true. Это эквивалентно определению всех шаблонов сообщений с помощью% m {nolookups}.
log4j2.trustStoreLocation LOG4J_TRUST_STORE_LOCATION Расположение трастового магазина. Если он не указан, будет использоваться хранилище доверенных сертификатов по умолчанию.
log4j2.trustStorePassword LOG4J_TRUST_STORE_PASSWORD Пароль, необходимый для доступа к хранилищу доверенных сертификатов.
log4j2.trustStorePasswordFile LOG4J_TRUST_STORE_PASSWORD_FILE Расположение файла, содержащего пароль для доверенного хранилища.
log4j2.trustStorePasswordEnvironmentVariable LOG4J_TRUST_STORE_PASSWORD_ENVIRONMENT_VARIABLE Имя переменной среды, содержащей пароль доверенного хранилища.
log4j2.trustStoreType LOG4J_TRUST_STORE_TYPE Тип хранилища ключей, используемого для хранилища доверенных сертификатов.
log4j2.trustStoreKeyManagerFactoryAlgorithm LOG4J_TRUST_STORE_KEY_MANAGER_FACTORY_ALGORITHM Криптографический алгоритм Java.
log4j2.keyStoreLocation LOG4J_KEY_STORE_LOCATION Расположение хранилища ключей.Если он не указан, будет использоваться хранилище ключей по умолчанию.
log4j2.keyStorePassword LOG4J_KEY_STORE_PASSWORD Пароль, необходимый для доступа к хранилищу ключей.
log4j2.keyStorePasswordFile LOG4J_KEY_STORE_PASSWORD_FILE Расположение файла, содержащего пароль для хранилища ключей.
log4j2.keyStorePasswordEnvironmentVariable LOG4J_KEY_STORE_PASSWORD_ENVIRONMENT_VARIABLE Имя переменной среды, содержащей пароль хранилища ключей.
log4j2.keyStoreType LOG4J_KEY_STORE_TYPE т Тип хранилища ключей.
log4j2.keyStoreKeyManagerFactoryAlgorithm LOG4J_KEY_STORE_KEY_MANAGER_FACTORY_ALGORITHM Криптографический алгоритм Java.
log4j2.sslVerifyHostName ложь истина или ложь, если необходимо проверить имя хоста

Apache log4j 1.2 —

Окончание срока службы

5 августа 2015 года Комитет по управлению проектом служб лесозаготовок объявил, что срок службы Log4j 1.x подошел к концу. Полный текст объявления см. В блоге Apache. Пользователям Log4j 1 рекомендуется перейти на Apache Log4j 2.

Уязвимости в системе безопасности

Уязвимость безопасности CVE-2019-17571 была обнаружена в Log4j 1. Log4j включает SocketServer, который принимает сериализованные события журнала и десериализует их, не проверяя, разрешены ли объекты или нет.Это может обеспечить вектор атаки, который можно раскрыть. Поскольку Log4j 1 больше не поддерживается, эта проблема не будет исправлена. Пользователям настоятельно рекомендуется перейти на Log4j 2.

Несовместимость версий Java

В Java 9 изменен алгоритм определения версии, из-за чего MDC не работает должным образом. См. Подробности в статье Log4j 1.2 не работает на Java 9.

Apache log4j ™ 1.2

Добро пожаловать в Apache log4j, библиотеку ведения журналов для Java.Apache log4j — это проект Apache Software Foundation, разработанный специальной группой коммиттеров Apache Software Foundation. Для получения дополнительной информации см. The Apache Software Foundation. Apache log4j также является частью проекта, известного как Apache Logging. См. Лицензию.

Если вас интересуют последние изменения, посетите наш отчет об изменениях.

Почему ведение журнала?

Вставка операторов журнала в код — это нетехнологичный метод его отладки.Это также может быть единственным способом, потому что отладчики не всегда доступны или применимы. Это часто бывает с распределенными приложениями.

С другой стороны, некоторые люди утверждают, что операторы журнала загрязняют исходный код и ухудшают читаемость. (Мы считаем, что верно обратное). В языке Java, где препроцессор недоступен, операторы журнала увеличивают размер кода и снижают его скорость, даже если ведение журнала отключено. Учитывая, что приложение разумного размера может содержать тысячи операторов журнала, скорость имеет особое значение.

Почему log4j?

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

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

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

Целью вывода журнала может быть файл, OutputStream, java.io.Writer, удаленный сервер log4j, удаленный демон системного журнала Unix или многие другие целевые объекты вывода.

Производительность

На AMD Duron с тактовой частотой 800 МГц, работающей под управлением JDK 1.3.1, требуется около 5 наносекунд, чтобы определить, следует ли регистрировать оператор журнала или нет. Фактическое ведение журнала также довольно быстрое: от 21 микросекунды с использованием SimpleLayout до 37 микросекунд с использованием TTCCLayout. Производительность PatternLayout почти такая же, как у выделенных макетов, за исключением того, что он гораздо более гибкий.

org.apache.log4j (API Apache Log4j 1.2.17)

Формат макета

Основной пакет log4j.

Краткое содержание класса
AppenderSkeleton Абстрактный суперкласс других приложений в пакете.
AsyncAppender AsyncAppender позволяет пользователям регистрировать события асинхронно.
BasicConfigurator Используйте этот класс для быстрой настройки пакета.
Категория Этот класс устарел и заменен на подкласс Logger .
КонсольAppender ConsoleAppender добавляет события журнала в System.out или System.err с использованием макета, указанного пользователем.
DailyRollingFileAppender DailyRollingFileAppender расширяет FileAppender , чтобы базовый файл пролистывается с выбранной пользователем частотой.
DefaultThrowableRenderer Реализация ThrowableRenderer по умолчанию с использованием Throwable.printStackTrace.
EnhancedPatternLayout Этот класс является расширенной версией org.apache.log4j.PatternLayout который изначально был разработан как часть заброшенного log4j 1.3 усилия и был доступен в дополнении companion.
EnhancedThrowableRenderer Улучшенная реализация ThrowableRenderer.
FileAppender FileAppender добавляет события журнала в файл.
Иерархия Этот класс специализируется на получении регистраторов по имени, а также поддержание иерархии регистраторов.
HTMLLayout Этот макет выводит события в HTML-таблицу.
Макет Расширьте этот абстрактный класс, чтобы создать собственный формат макета журнала.
Уровень Определяет минимальный набор уровней, распознаваемых системой, т. Е. ВЫКЛ. , FATAL , ОШИБКА , ПРЕДУПРЕЖДЕНИЕ , ИНФОРМАЦИЯ , ОТЛАДКА и ВСЕ .
Регистратор Это центральный класс в пакете log4j.
LogManager Используйте класс LogManager для получения Logger экземпляров или для работы с текущим LoggerRepository .
LogMF Этот класс предоставляет параметризованные службы ведения журнала. используя синтаксис шаблона java.text.MessageFormat.
LogSF Этот класс предоставляет параметризованные службы ведения журнала. используя синтаксис шаблона SLF4J.
LogXF Это базовый класс для параметризованных классов ведения журнала LogMF и LogSF.
MDC Класс MDC аналогичен классу NDC за исключением того, что он на основе карты, а не стека.
НДЦ Класс NDC реализует вложенных диагностических контекстов как определено Нилом Харрисоном в статье «Шаблоны для ведения журнала. Диагностические сообщения »часть книги« Pattern Languages ​​of Дизайн программы 3 »под редакцией Мартина и др.
Макет шаблона Гибкий макет, настраиваемый с помощью строки шаблона.
Приоритет Воздержитесь от прямого использования этого класса, используйте вместо этого класс Level .
PropertyConfigurator Позволяет настроить log4j из внешнего файла.
RollingFileAppender RollingFileAppender расширяет FileAppender для резервного копирования файлов журнала, когда они достигают определенного размера.
SimpleLayout SimpleLayout состоит из уровня оператора журнала, за которым следует «-», а затем само сообщение журнала.
TTCCLayout TTCC состоит из времени, потока, категории и вложенных диагностическая контекстная информация, отсюда и название.
WriterAppender WriterAppender добавляет события журнала в модуль записи или OutputStream в зависимости от выбора пользователя.

org.apache.log4j (SLF4J 2.0.0-alpha0 API)

org.apache.log4j (SLF4J 2.0.0-alpha0 API)

В вашем браузере отключен JavaScript.

В вашем браузере отключен JavaScript.

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

  • Обзор интерфейса
    Интерфейс Описание
    Аппендер

    Реализуйте этот интерфейс для своих собственных стратегий вывода журнала. заявления.

  • Краткое описание класса
    Класс Описание
    AppenderSkeleton
    BasicConfigurator

    Минимальная (nop) реализация BasicConfigurator.

    Категория Этот класс — минимальная реализация оригинального org.apache.log4j.Category класс (как найдено в log4j 1.2) от делегирование всех вызовов экземпляру Logger .
    КонсольAppender
    FileAppender
    Схема

    Этот класс является минимальной реализацией исходного класса Log4J.

    Уровень

    Определяет минимальный набор уровней, распознаваемых системой, т. Е. ВЫКЛ. , FATAL , ОШИБКА , WARN , ИНФОРМАЦИЯ , ОТЛАДКА и ВСЕ .

    Регистратор Этот класс — минимальная реализация оригинального org.apache.log4j.Logger класс (как найдено в log4j 1.2) делегирование всех вызовов экземпляру Logger .
    LogManager

    Этот класс — минимальная реализация оригинального org.apache.log4j.LogManager класс (как найдено в log4j 1.2) делегирование всех вызовов SLF4J.

    MDC
    MDCДруг
    НДЦ

    NDC в log4j, реализованный на основе примитивов SLF4J MDC.

    PatternLayout

    Этот класс является минимальной реализацией исходного класса Log4J.

    Приоритет Воздержитесь от прямого использования этого класса, используйте класс Level вместо .
    PropertyConfigurator

    Нет реализации PropertyConfigurator.

    RollingFileAppender

    Этот класс является минимальной реализацией исходного класса Log4J.

    SimpleLayout
    WriterAppender

В вашем браузере отключен JavaScript.

Авторские права © 2005–2019 QOS.ch. Все права защищены.

org.apache.logging.log4j: уязвимости log4j | Снык

орг.apache.logging.log4j: log4j 2.14.1

Последний

07 марта 2021 Apache-2.0
org.apache.logging.log4j: log4j 2.14.0 06 ноя, 2020 Апач-2.0
org.apache.logging.log4j: log4j 2.13.3 10 мая, 2020 Apache-2.0
org.apache.logging.log4j: log4j 2.13.2 21 апр, 2020 Апач-2.0
org.apache.logging.log4j: log4j 2.13.1 26 фев, 2020 Apache-2.0
org.apache.logging.log4j: log4j 2.13.0 12 декабря, 2019 Апач-2.0
org.apache.logging.log4j: log4j 2.12.1 07 августа, 2019 Apache-2.0
org.apache.logging.log4j: log4j 2.12.0 26 июн, 2019 Апач-2.0
org.apache.logging.log4j: log4j 2.11.2 06 фев, 2019 Apache-2.0
org.apache.logging.log4j: log4j 2.11.1 23 июл, 2018 Апач-2.0
org.apache.logging.log4j: log4j 2.11.0 11 марта 2018 Apache-2.0
org.apache.logging.log4j: log4j 2.10.0 19 ноя, 2017 Апач-2.0
org.apache.logging.log4j: log4j 2.9.1 18 сен, 2017 Apache-2.0
org.apache.logging.log4j: log4j 2.9.0 26 августа, 2017 Апач-2.0
org.apache.logging.log4j: log4j 2.8.2 02 апр, 2017 Apache-2.0
org.apache.logging.log4j: log4j 2.8.1 26 фев, 2017 Апач-2.0
org.apache.logging.log4j: log4j 2.8 22 янв, 2017 Apache-2.0
org.apache.logging.log4j: log4j 2.7 02 Октябрь, 2016 Апач-2.0
org.apache.logging.log4j: log4j 2.6.2 06 июл, 2016 Apache-2.0
org.apache.logging.log4j: log4j 2.6.1 06 июн, 2016 Апач-2.0
org.apache.logging.log4j: log4j 2.6 25 мая, 2016 Apache-2.0
org.apache.logging.log4j: log4j 2.5 07 декабря, 2015 Апач-2.0
org.apache.logging.log4j: log4j 2.4.1 09 октября 2015 Apache-2.0
org.apache.logging.log4j: log4j 2.4 20 сен, 2015 Апач-2.0
org.apache.logging.log4j: log4j 2.3 10 мая, 2015 Apache-2.0
org.apache.logging.log4j: log4j 2.2 22 фев, 2015 Апач-2.0
org.apache.logging.log4j: log4j 2.1 20 октября 2014 г. Apache-2.0
org.apache.logging.log4j: log4j 2.0.2 17 августа 2014 г. Апач-2.0
org.apache.logging.log4j: log4j 2.0.1 30 июл, 2014 Apache-2.0
org.apache.logging.log4j: log4j 2.0 12 июл, 2014 Апач-2.0
org.apache.logging.log4j: log4j 2.0-rc2

Предварительный выпуск

21 июня 2014 г. Apache-2.0
орг.apache.logging.log4j: log4j 2.0-rc1

Предварительный выпуск

09 фев, 2014 Apache-2.0
org.apache.logging.log4j: log4j 2.0-beta9

Предварительный выпуск

14 сен, 2013 Апач-2.0
org.apache.logging.log4j: log4j 2.0-beta8

Предварительный выпуск

10 июл, 2013 Apache-2.0
орг.apache.logging.log4j: log4j 2.0-beta7

Предварительный выпуск

4 июня 2013 г. Apache-2.0
org.apache.logging.log4j: log4j 2.0-beta6

Предварительный выпуск

07 мая, 2013 Апач-2.0
org.apache.logging.log4j: log4j 2.0-beta5

Предварительный выпуск

20 апреля 2013 г. Apache-2.0
орг.apache.logging.log4j: log4j 2.0-beta4

Предварительный выпуск

28 янв, 2013 Apache-2.0
org.apache.logging.log4j: log4j 2.0-beta3

Предварительный выпуск

11 ноя, 2012 Апач-2.0
org.apache.logging.log4j: log4j 2.0-beta2

Предварительный выпуск

07 октября 2012 г. Apache-2.0
орг.apache.logging.log4j: log4j 2.0-beta1

Предварительный выпуск

18 сен, 2012 Apache-2.0
org.apache.logging.log4j: log4j 2.0-alpha2

Предварительный выпуск

24 августа 2012 г. Апач-2.0
org.apache.logging.log4j: log4j 2.0-alpha1

Предварительный выпуск

29 июл, 2012 Apache-2.0

Уязвимости безопасности CVE, версии и подробные отчеты

Ленты и виджеты уязвимостей

Вы можете создать настраиваемый RSS-канал, встраиваемый виджет списка уязвимостей или URL-адрес вызова json API.

(Ленты или виджет будут содержать только уязвимости этого продукта)

Выбранные типы уязвимостей объединяются оператором ИЛИ. Если вы не выберете какие-либо критерии, будут возвращены «все» записи CVE.

Тенденции уязвимости с течением времени

Год # уязвимостей DoS Выполнение кода Переполнение Повреждение памяти SQL-инъекция XSS Обход каталогов Разделение HTTP-ответа Обойти что-то Получить информацию Получите привилегии CSRF Включение файла # эксплойтов
2017 г. 1 1
Всего 1 1
% от всех 0.0 100,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0

Предупреждение: Уязвимости с датами публикации до 1999 года не включены в эту таблицу и диаграмму.(Потому что их не так много, и из-за них страница выглядит плохо; и они могут не публиковаться в те годы.)

Уязвимости по годам
1
2017 1
Уязвимости по типу
1
Выполнить код 1

Нажмите на названия легенды, чтобы показать / скрыть строки для типов уязвимостей
Если вы не видите диаграммы стилей MS Office выше, пора обновить браузер!
с.S: диаграммы могут отображаться неправильно, особенно если есть только несколько точек данных.

На этой странице представлена ​​статистика уязвимостей для всех версий Apache Log4j. Статистика уязвимостей дает быстрый обзор уязвимостей безопасности этого программного обеспечения. Вы можете просмотреть версии этого продукта или уязвимости безопасности, связанные с Apache Log4j.

Руководство по Log4j2 2.x — Переход с Log4j 1.x

Использование моста Log4j 1.x

Возможно, самый простой способ перейти на использование Log4j 2 — это заменить log4j 1.x jar файл с Log4j 2 log4j-1.2-api.jar. Однако для успешного использования приложения должны соответствовать следующим требованиям:

  • Они не должны обращаться к методам и классам, внутренним по отношению к реализации Log4j 1.x, таким как Appenders, LoggerRepository или метод Category callAppenders.

  • Они не должны программно настраивать Log4j.

  • Их нельзя настраивать, вызывая классы DOMConfigurator или PropertyConfigurator.

Преобразование в Log4j 2 API

По большей части преобразование API Log4j 1.x в Log4j 2 должно быть довольно простым. Многие операторы журнала не потребуют изменений. Однако при необходимости следует внести следующие изменения.

  • Основной пакет в версии 1 — org.apache.log4j, в версии 2 — org.apache.logging.log4j

  • Вызовы org.apache.log4j.Logger.getLogger () должны быть изменены на org.apache.logging.log4j.LogManager.getLogger ().

  • Вызовы org.apache.log4j.Logger.getRootLogger () или org.apache.log4j.LogManager.getRootLogger () необходимо заменить на org.apache.logging.log4j.LogManager.getRootLogger ().

  • Вызовы org.apache.log4j.Logger.getLogger, которые принимают LoggerFactory, должны удалить org.apache.log4j.spi.LoggerFactory и использовать один из других механизмов расширения Log4j 2.

  • Заменить звонки в орг.apache.log4j.Logger.getEffectiveLevel () с org.apache.logging.log4j.Logger.getLevel ().

  • Удалите вызовы org.apache.log4j.LogManager.shutdown (), они не нужны в версии 2, потому что ядро ​​Log4j теперь автоматически добавляет ловушку завершения работы JVM при запуске для выполнения любых очисток ядра.

  • Начиная с Log4j 2.1, вы можете указать пользовательский ShutdownCallbackRegistry, чтобы переопределить стратегию обработчика прерывания JVM по умолчанию.

    • Запуск в Log4j 2.6, теперь вы можете использовать org.apache.logging.log4j.LogManager.shutdown () для запуска выключения вручную.
  • Вызовы org.apache.log4j.Logger.setLevel () или аналогичные методы не поддерживаются в API. Приложения должны удалить их. Эквивалентная функциональность предоставляется в классах реализации Log4j 2, см. Org.apache.logging.log4j.core.config.Configurator.setLevel (), но может оставить приложение уязвимым к изменениям во внутреннем устройстве Log4j 2.

  • При необходимости приложения должны преобразовывать для использования параметризованных сообщений вместо конкатенации строк.

  • org.apache.log4j.MDC и org.apache.log4j.NDC были заменены контекстом потока.

Настройка Log4j 2

Хотя синтаксис конфигурации Log4j 2 отличается от синтаксиса Log4j 1.x, доступно большинство, если не все, одинаковых функций.

Обратите внимание, что интерполяция системных свойств с помощью синтаксиса $ {foo} была расширена, чтобы разрешить поиск свойств из множества различных источников. Дополнительную информацию см. В документации по поисковым запросам.Например, при поиске системного свойства с именем catalina.base в Log4j 1.x синтаксис будет $ {catalina.base}. В Log4j 2 синтаксис будет $ {sys: catalina.base}.

Log4j 1.x имеет XMLLayout, который отличается от XmlLayout в Log4j 2, модуль log4j-1.2-api содержит Log4j1XmlLayout, который производит вывод в формате, как в Log4j 1.x. Log4j 1.x SimpleLayout можно эмулировать с помощью PatternLayout «% level -% m% n». Log4j 1.x TTCCLayout можно эмулировать с помощью PatternLayout «% r [% t]% p% c% notEmpty {% ndc} -% m% n».

И PatternLayout, и EnhancedPatternLayout в Log4j 1.x могут быть заменены на PatternLayout в Log4j 2. Модуль log4j-1.2-api содержит два преобразования шаблонов «% ndc» и «% properties», которые можно использовать для эмуляции «% x» и «% X» в Log4j 1.x PatternLayout («% x» и% X »в Log4j 2 имеют немного другой формат).

Ниже приведены примеры конфигураций для Log4j 1.x и их аналогов в Log4j 2.

Пример 1 — Простая конфигурация с использованием консольного приложения

Log4j 1.x Конфигурация XML

  


  
    <раскладка>
      
    
  
  
    
  
  <Корень>
    
    
  

  

Конфигурация XML Log4j 2

  
<Конфигурация>
  <Приложения>
    <Имя консоли = "STDOUT" target = "SYSTEM_OUT">
      
    
  
  <Регистраторы>
    <Имя регистратора = "org.apache.log4j.xml" level = "info" />
    <Корневой уровень = "отладка">
      
    
  

  
Пример 2 — Простая конфигурация с использованием File Appender, XMLLayout и SimpleLayout

Log4j 1.x Конфигурация XML

  


  
    
    
    
  
  
    
  
  
    
    
  
  <корень>
    
    
  

  

Конфигурация XML Log4j 2

  
<Конфигурация>
  <Приложения>
    
      
    
    <Имя консоли = "STDOUT" target = "SYSTEM_OUT">
      
    
  
  <Регистраторы>
    <Имя регистратора = "org.apache.log4j.xml "level =" отладка ">
      
    
    <Корневой уровень = "отладка">
      
    
  

  
Пример 3 — SocketAppender

XML-конфигурация Log4j 1.x. Этот пример из Log4j 1.x вводит в заблуждение. SocketAppender фактически не использует макет. Настройка одного не даст никакого эффекта.

  


  
    
    
    
    <раскладка>
      
    
  
  
    <раскладка>
      
    
  
  
    
    
  
  <корень>
    
    
  

  

Конфигурация XML Log4j 2

  
<Конфигурация>
  <Приложения>
    
      
    
    <Имя консоли = "STDOUT" target = "SYSTEM_OUT">
      
    
  
  <Регистраторы>
    <Имя регистратора = "org.apache.log4j.xml "level =" отладка ">
      
    
    <Корневой уровень = "отладка">
      
    
  

  
Пример 4 — AsyncAppender и TTCCLayout

XML-конфигурация Log4j 1.x с использованием AsyncAppender.

  


  
    
  
  
    
    <раскладка>
      
      
      
    
  
  <корень>
    
    
  

  

XML-конфигурация Log4j 2.

  
<Состояние конфигурации = "отладка">
  <Приложения>
    
      
    
    
      
    
  
  <Регистраторы>
    <Корневой уровень = "отладка">
      
    
  

  
Пример 5 — AsyncAppender с консолью и файлом

Log4j 1.x XML с помощью AsyncAppender.

  


  
    
    
  
  
    <раскладка>
      
    
  
  
    
    <раскладка>
      
    
  
  <корень>
    
    
  

  

XML-конфигурация Log4j 2.Обратите внимание, что Async Appender должен быть настроен после приложений, на которые он ссылается. Это позволит ему правильно выключиться.

  
<Состояние конфигурации = "отладка">
  <Приложения>
    <Имя консоли = "CONSOLE" target = "SYSTEM_OUT">
      
    
    
      
    
    
      
      
    
  
  <Регистраторы>
    <Корневой уровень = "отладка">
      
    
  

  
.