У меня возникла странная проблема, и я прошу вас помочь. Судя по тому, что мой поиск не дал определенных результатов, я просто забыл что-то очевидное, но я не могу понять, что это было.lost Конфигурация журнала в launch4j
Итак, на Java есть программа. Logback конфигурации (logback.xml в "ресурсы" путь):
<configuration>
<property resource=".\app\LOG.properties" />
<appender name="STDOUT-BLACK"
...
</appender>
<appender name="STDOUT-RED" class="ch.qos.logback.core.ConsoleAppender">
...
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${destination}</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${destination}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>2MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>7</maxHistory>
<totalSizeCap>10MB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
</appender>
<logger name="org.hibernate.type" level="TRACE" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<root level="DEBUG">
<appender-ref ref="STDOUT-BLACK" />
<appender-ref ref="STDOUT-RED" />
<appender-ref ref="FILE" />
</root>
</configuration>
дополнительный конфигурационный файл (ресурсы \ приложения \ LOG.properties):
fileName=LOGFile.log
#destination=${DEV_HOME:-.\\logs}\\${fileName}
destination=C:\\Temp\\${fileName}
И это отлично работает в среде NetBeans.
BUT whean Я делаю Exe для Windows из этого (используя Gradle shadow и plug4j plugins) файл свойств, кажется, игнорируется. Каждый раз, когда я запускаю exe, у меня есть файл (в той же папке, что и exe-файл) «destination_IS_UNDEFINED», где все мои журналы сохранены правильно. Если «hardcode» имя файла в «logback.xml» работает так, как ожидалось, но почему он не может читать «свойства»? Они находятся в Jar, из которых Launch4j создает exe, и я также получил некоторые другие свойства Files, программа которых корректно читается.
<property resource=".\app\LOG.properties" />
Ошибка где-то здесь ... Я пробовал использовать «/» как разделитель, но так или иначе не помог. Что я плохой?
И на самом деле у меня есть еще один вопрос: что это правильный способ сохранить свойства otside Jar file? Я имею в виду, что было бы неплохо иметь папку, где все мои свойства (как и в IDE), и пользователь может их изменить без перекомпиляции проекта (поэтому программа «* .exe» должна «читать» это из этого вместо Jar). Я уверен, что он был сделан 1000 раз everione. Есть ли какой-нибудь образец или объяснение об этом в любом месте (может быть, я просто искал не то, потому что знаю, что английского недостаточно, поэтому я не могу найти то, что мне нужно).
Большое спасибо!
EDITED: Итак, первая «проблема» решена, и это было действительно глупо - была только дополнительная точка. У кого-нибудь есть совет по второму вопросу?
Hi! Да, ошибка есть, но что там не так ... папка «приложение» находится в «ресурсах» в среде IDE и в «root» в скомпилированном JAR. Но, как я писал, у меня есть и другие свойства, которые программа читает правильно ... –
О, боже мой ... ». был неправ":)))) –