#java #log4j2
#java #log4j2
Вопрос:
Это моя конфигурация log4j2.xml
с path to file
— src/com/tarasiuk/task_01/log/dataLogger.log
:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="FORMAT_MESSAGE">
%d{YYYY-MM-dd HH:mm:ss} [%t] Level:%-7p Class:%c{1}:%-5L - %msg%n
</Property>
<Property name="LOG_FILE">
src/com/tarasiuk/task_01/log/dataLogger.log
</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${FORMAT_MESSAGE}" />
</Console>
<File name="File" fileName="${LOG_FILE}" append="false">
<PatternLayout pattern="${FORMAT_MESSAGE}" />
</File>
</Appenders>
<Loggers>
<Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
<AppenderRef ref="File" />
</Logger>
<Root level="info">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
Что я делаю:
- измените
path
на файл журнала сsrc/com/tarasiuk/task_01/log/dataLogger.log
наcom/tarasiuk/task_01/log/dataLogger.log
— никакого результата. - измените
level
в<Logger>
сdebug
наinfo
— никакого результата.
Журналы выводятся на консоль — это нормально. Но почему Log4j2
не записывает журналы to a file
?
Ответ №1:
Попробуйте с помощью приложения ниже.
Возможно, в вашем случае он не может получить путь из свойства, поэтому я указал только имя. Таким образом, он автоматически создаст файл по тому же пути, что и ваше приложение.
<Appenders>
<File name="dataLogger" fileName="dataLogger.log" append="false">
<PatternLayout pattern="%level - %m%n"/>
</File>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%level - %m%n"/>
</Console>
</Appenders>
Это поможет вам.
Комментарии:
1. @n199a теперь просто попробуйте использовать статический путь. Просто скопируйте абсолютный путь task01/log/dataLogger.log и введите в поле filename. Если это сработает, попробуйте использовать свойство.
2. log4j2.xml находится в /task_01/src/log4j2.xml и файл «Регистратор данных. журнал’ был успешно создан в /task_01/src/dataLogger.log. Но мне нужен файл ‘dataLogger. журнал’ должен быть создан в /src / com / tarasiuk /task_01/log / dataLogger.log на моем Ubuntu.
3. абсолютный путь
/home/n199a/Documents/java/workspace/2_epam_industrial_programming_in_java/task_01/src/com/tarasiuk/task_01/log/dataLogger.log
— это сработало. Но нужно в/src/com/tarasiuk/task_01/log/dataLogger.log
4. Теперь попробуйте с ../src/com/tasiuk
5. это волшебно, просто нажмите на файл
dataLogger.log
вIDEA -> copy -> Path from content root
и вставьтеlog4j2.xml
. Результат —src/com/tarasiuk/task_01/log/dataLogger.log
. странно, когда я набрал путь руками — это не сработало. Скопировал — это сработало. Это сработало! Спасибо