Подтвердить что ты не робот

Log4j 2 больше не поддерживает файл log4j.properties?

Я запускаю пример с использованием файлов log4j 2.0-rc1 и log4j.properties, но log4j lib всегда запускает его с настройкой по умолчанию (уровень журнала, appender и т.д.). Я также попытался изменить имя на log4j2.properties, и ничего не произошло.

4b9b3361

Ответ 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 (опять же, библиотеки). Проверьте документацию.