конфигурация log4j2 для стандартного проекта Java - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь настроить log4j2 в стандартном приложении Java.

Я вошел во многие онлайн-учебники, но все они основаны на проекте Maven, где я использую Standard Vanilla Java с SDK 1.8. Приложение не имеет основного класса в качестве отправной точки, так как приложение является плагином для другого приложения, которое выполнило встроенный файл .jar.

У меня есть файл журнала, который соответствует моим потребностям, и я считаю, что правильно настроил экземпляр Logger в коде.

Файл конфигурации, который я нашел в моей папке src. Структура проекта выглядит следующим образом:

Project Root
    - src
        - UI
        - Errors
            - error classes go here
        - Reports
            - report classes go here
        - Utilities
            - utility classes go here
        - CapitalReportsApplication - (This is the starting point of the application)
        - resources
            - log4j2.xml

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <File name="MyFile" fileName="all.log" immediateFlush="false" append="false">
            <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
</Configuration>

Инициализация регистратора файлов классов

private static Logger log = LogManager.getLogger(CapitalReportsApplication.class.getName());
log.info("This is a message");

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

1 Ответ

0 голосов
/ 10 января 2019

Для этого у вас должно быть что-то подобное. Например, вы не задаете тип приложения.

<appender name="rollingFile" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${LOG_DIR}/application.log" />
    <param name="MaxFileSize" value="10MB" />
    <param name="MaxBackupIndex" value="5" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n" />
        </layout>
</appender>

Свойства могут быть такими (log4j.properties):

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=${LOG_DIR}/application.log
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n
log4j.appender.rollingFile.MaxFileSize=10MB
log4j.appender.rollingFile.MaxBackupIndex=5
log4j.appender.rollingFile.append=true

log4j.rootCategory=ALL, rollingFile

log4j2.xml должен находиться в папке ресурсов, пожалуйста, отметьте

...