Я запускаю пример с использованием файлов log4j 2.0-rc1 и log4j.properties
, но log4j lib всегда запускает его с настройкой по умолчанию (уровень журнала, appender и т.д.). Я также попытался изменить имя на log4j2.properties
, и ничего не произошло.
Log4j 2 больше не поддерживает файл log4j.properties?
Ответ 1
Log4j 2 больше не поддерживает формат Log4j v1.properties(но, поскольку v2.4, Log4j поддерживает формат Property, но его синтаксис полностью отличается от формата v1). Новые форматы: XML, JSON и YAML, см. документацию (обратите внимание: если вы использовали один из этих форматов в файле под названием .properties, это может ввести в заблуждение).
Чтобы указать местоположение вашего файла конфигурации, вы используете системное свойство log4j.configurationFile
, класс Log4j ConfigurationFactory
или что-то еще?
Вы читали эту страницу руководства? В нем объясняется, что:
Хотя синтаксис конфигурации Log4j 2 отличается от синтаксиса конфигурации Log4j 1.x, большинство, если не все, имеют ту же функциональность.
Итак, кажется, что устаревший файл Log4j1.x log4j.properties
не поддерживается как есть, он должен быть перенесен в формат v2.x. Миграция кажется довольно простой, хотя, глядя на пример в ссылке, которую я дал выше. Вот выдержка:
Пример файла конфигурации Log4j v1.x:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
<category name="org.apache.log4j.xml">
<priority value="info" />
</category>
<Root>
<priority value ="debug" />
<appender-ref ref="STDOUT" />
</Root>
</log4j:configuration>
Тот же файл конфигурации перенесен в Log4j v2:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache.log4j.xml" level="info"/>
<Root level="debug">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
Ответ 2
Начиная с версии 2.4, Log4J2 теперь снова поддерживает файлы .property. См. Здесь в документации для конфигурации свойств.
Конфигурация с помощью свойств
Начиная с версии 2.4, Log4j теперь поддерживает конфигурацию через файлы свойств. Обратите внимание, что синтаксис свойства НЕ такой же, как синтаксис, используемый в Log4j 1. Как и конфигурации XML и JSON, конфигурации свойств определяют конфигурацию с точки зрения плагинов и атрибутов для плагинов.
Ответ 3
Log4j 2 использует новый формат файла конфигурации. Вам нужно использовать XML (по умолчанию), JSON (с дополнительными библиотеками) или даже YAML (опять же, библиотеки). Проверьте документацию.