2016-06-02 4 views
0

Я разработал приложение, использующее 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/. Есть ли что-то, что я делаю неправильно?

+0

Что выводит программа на stdout/stderr? Имеются ли сообщения об ошибках в рамках ведения журнала? Где вы поместили файл 'logback.xml'? Можете ли вы загрузить JAR? – Raffaele

+0

Нет сообщений об ошибках. Программа выводит обычные журналы приложения на стандартный вывод. logback.xml находится в src/main/resources. Я думаю, что он может забрать logback.xml, потому что он может показывать журналы на stdout. –

ответ

1

logback.xml должен быть в вашем пути к классам или использовать «-Dlogback.configurationFile =/путь/к/config.xml»

Кроме того, убедитесь, что вы упаковка его через мавенна и не затмить.

+0

logback.xml находится в пути к классу. Кроме того, он может принимать logback.xml, поскольку он показывает журналы на stdout. –

+0

По умолчанию logback write to stdout. Где находится logback.xml? – sebastien

+0

Но не должен ли logback.xml быть включен в саму банку? Мой logback.xml находится в src/main/resources проекта. Он находится внутри класса только вправо? –

Смежные вопросы