неожиданное исключение: 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
- Исключение в потоке «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
Поделиться 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
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 индивидуальные занятия
Источник | Приоритет | Описание | |
---|---|---|---|
Переменные среды | -100 | Все переменные среды имеют префикс LOG4J_, все заглавные буквы, а все слова разделенные подчеркиванием.Только эта схема именования поддерживает переменные среды, как и раньше. нет старых схем именования, с которыми необходимо поддерживать совместимость. | |
файл log4j2.component.properties | 0 | Включение этого файла в путь к классам можно использовать как альтернативу предоставлению свойств как системных характеристики. Это имеет приоритет над системными свойствами, но они могут быть отменены средой. переменные, как описано выше. | |
Свойства системы | 100 | Все свойства могут быть установлены с использованием обычных шаблонов системных свойств. У них самый низкий приоритет и могут быть переопределены включенными файлами свойств или переменными среды. | |
Имя свойства (имя устаревшего свойства) | Переменная среды | Значение по умолчанию | Описание |
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. (org.apache.logging.log4j .simplelog. | LOG4J_SIMPLELOG_ | Уровень журнала по умолчанию 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. Например, если конфигурация содержит Если слушатели не зарегистрированы, 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 почти такая же, как у выделенных макетов, за исключением того, что он гораздо более гибкий.
Краткое содержание класса | |
---|---|
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. Все права защищены.
орг.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 version = "1.0" encoding = "UTF-8"?>
<раскладка>
<Корень>
log4j: конфигурация>
Конфигурация XML Log4j 2
Xml version = "1.0 "encoding =" UTF-8 "?>
<Конфигурация>
<Приложения>
<Имя консоли = "STDOUT" target = "SYSTEM_OUT">
<Регистраторы>
<Имя регистратора = "org.apache.log4j.xml" level = "info" />
<Корневой уровень = "отладка">
Пример 2 — Простая конфигурация с использованием File Appender, XMLLayout и SimpleLayout
Log4j 1.x Конфигурация XML
Xml version = "1.0" encoding = "UTF-8"?>
<корень>
log4j: конфигурация>
Конфигурация XML Log4j 2
Xml version = "1.0" encoding = "UTF-8"?>
<Конфигурация>
<Приложения>
<Имя консоли = "STDOUT" target = "SYSTEM_OUT">
<Регистраторы>
<Имя регистратора = "org.apache.log4j.xml "level =" отладка ">
<Корневой уровень = "отладка">
Пример 3 — SocketAppender
XML-конфигурация Log4j 1.x. Этот пример из Log4j 1.x вводит в заблуждение. SocketAppender фактически не использует макет. Настройка одного не даст никакого эффекта.
Xml version = "1.0" encoding = "UTF-8"?>
<раскладка>
<раскладка>
<корень>
log4j: конфигурация>
Конфигурация XML Log4j 2
Xml version = "1.0" encoding = "UTF-8"?>
<Конфигурация>
<Приложения>
<Имя консоли = "STDOUT" target = "SYSTEM_OUT">
<Регистраторы>
<Имя регистратора = "org.apache.log4j.xml "level =" отладка ">
<Корневой уровень = "отладка">
Пример 4 — AsyncAppender и TTCCLayout
XML-конфигурация Log4j 1.x с использованием AsyncAppender.
Xml version = "1.0" encoding = "UTF-8"?>
<раскладка>
<корень>
log4j: конфигурация>
XML-конфигурация Log4j 2.
Xml version = "1.0" encoding = "UTF-8"?>
<Состояние конфигурации = "отладка">
<Приложения>
<Регистраторы>
<Корневой уровень = "отладка">
Пример 5 — AsyncAppender с консолью и файлом
Log4j 1.x XML с помощью AsyncAppender.
Xml version = "1.0" encoding = "UTF-8"?>
<раскладка>
<раскладка>
<корень>
log4j: конфигурация>
XML-конфигурация Log4j 2.Обратите внимание, что Async Appender должен быть настроен после приложений, на которые он ссылается. Это позволит ему правильно выключиться.
Xml version = "1.0" encoding = "UTF-8"?>
<Состояние конфигурации = "отладка">
<Приложения>
<Имя консоли = "CONSOLE" target = "SYSTEM_OUT">
<Регистраторы>
<Корневой уровень = "отладка">
.