Log4j2 не входит в файл журнала

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

Структура моего заказа: Log4j2 не входит в файл журнала

Log4j2.xml:

<Properties>
    <Property name = "LOG_PATTERN">
        %d{yyyy-MM-dd HH:mm:ss.SSS} %5level ${hostName} --- [%15.15thread] %-100.100class : %message%n%exception
    </Property>
</Properties>
<Appenders>
    <Console name = "ConsoleAppender" target = "SYSTEM_OUT" follow = "true">
        <PatternLayout pattern = "${LOG_PATTERN}"/>
    </Console>

    <RollingFile name = "RootAppender" fileName = "./log/log.log" filePattern = "./log/log-%d{yyyy-MM-dd}-%i.log">
        <PatternLayout>
            <Pattern>${LOG_PATTERN}</Pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size = "100MB" />
            <TimeBasedTriggeringPolicy interval = "1"/>
        </Policies>
        <DefaultRolloverStrategy max = "7"/>
    </RollingFile>

    <RollingFile name = "CurlAppender" fileName = "./log/curl.log" filePattern = "./log/curl-%d{yyyy-MM-dd}-%i.log">
        <PatternLayout>
            <Pattern>${LOG_PATTERN}</Pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size = "500MB" />
            <TimeBasedTriggeringPolicy interval = "1"/>
        </Policies>
        <DefaultRolloverStrategy max = "7"/>
    </RollingFile>
</Appenders>

<Loggers>
    <Root level = "info">
        <AppenderRef ref = "ConsoleAppender" />
        <AppenderRef ref = "RootAppender"/>
    </Root>

    <Logger name = "CurlLogger" level = "trace" additivity = "false">
        <AppenderRef ref = "CurlAppender"/>
    </Logger>
</Loggers>
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
247
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я думаю, что есть проблема с тегом Loggers. В имени Logger добавьте имя своего пакета, а также измените AppenderRef в Logger.

Пожалуйста, измените код xml на следующий:

<Loggers>
    <Root level = "info">
        <AppenderRef ref = "ConsoleAppender" />
        <AppenderRef ref = "RootAppender"/>
    </Root>

    <Logger name = "com.example.springbackend.controller" level = "trace" additivity = "false">
        <AppenderRef ref = "ConsoleAppender" />
        <AppenderRef ref = "RootAppender"/>
    </Logger>
</Loggers>

Здесь <Logger name = "com.example.springbackend.controller" level = "trace" additivity = "false"> Имя регистратора — это имя пакета проекта.

Я проверил имя регистратора и изменил его на имя пакета. Но ничего не изменилось...

Marcel Weidner 15.07.2019 14:39

Добавьте <AppenderRef ref = "ConsoleAppender" /> внутрь тега Logger.

GnanaJeyam 15.07.2019 20:57

Консольный регистратор работает, но регистратор rollfile не работает. Java-приложение создает файл журнала, но ничего не записывает.

Marcel Weidner 15.07.2019 21:01

Я думаю, что проблема в корневом уровне. Измените регистратор корневого уровня на отладку или трассировку.

Я изменил корневой уровень журнала на отладку, но ничего не изменилось. Я также изменил их на trace. Если переключить log4j2.xml в папку src/main/resources, тогда я смогу все регистрировать. Но когда xml-файл находится в папке /conf, то ничего не логируется. Будут генерироваться только файлы по умолчанию.

Marcel Weidner 16.07.2019 07:17

Тогда вопрос в локации.

GnanaJeyam 16.07.2019 07:54

Да, я знаю, но я не могу найти проблему. Я что-то менял, но ничего не изменилось. Приложение не регистрируется в файле журнала.

Marcel Weidner 16.07.2019 07:55
Ответ принят как подходящий

Я нашел проблему. В файле application.properties должен быть установлен атрибут logger.config. После установки этого атрибута ведение журнала файлов работает.

Не могли бы вы рассказать подробнее об этом logger.config отеле? Кажется, у меня может быть такая же проблема

user2105282 14.12.2021 15:33

Другие вопросы по теме