Я разработал приложение, использующее logback с slf4j. Вот мой logback.xml:My Jar не создает файл журнала, тогда как нормальное приложение
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/tmp/alerttest.log</file>
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<!-- Strictly speaking, the level attribute is not necessary since -->
<!-- the level of the root level is set to DEBUG by default. -->
<root level="DEBUG">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
Так пишет журналы /tmp/alerttest.log
. Когда я запускаю его в eclipse, он запускается и создает файл журнала и записывает в него журналы. Но теперь я создал исполняемый Jar-файл проекта с именем alerttesting.jar.
Когда я запустил его с помощью java -jar alerttesting.jar
, он работает успешно, но не создает файл в /tmp/
. Есть ли что-то, что я делаю неправильно?
Что выводит программа на stdout/stderr? Имеются ли сообщения об ошибках в рамках ведения журнала? Где вы поместили файл 'logback.xml'? Можете ли вы загрузить JAR? – Raffaele
Нет сообщений об ошибках. Программа выводит обычные журналы приложения на стандартный вывод. logback.xml находится в src/main/resources. Я думаю, что он может забрать logback.xml, потому что он может показывать журналы на stdout. –