Должен ли log4.properties находиться на пути к классам? - PullRequest
9 голосов
/ 17 января 2012

У меня проблемы с размещением файла log4j.properties в classpath.Я могу использовать его при разработке (Eclipse Indigo), но когда я экспортирую свое приложение как JAR, я не могу.

Я вручную создал файл MANIFEST.MF для экспортированного JAR:

Manifest-Version: 1.0
Main-Class: main.Program
Class-Path: lib/log4j.properties lib/log4j-1.2.15.jar

И затем с помощью JAR для этой файловой организации:

folder
  |-------- app.jar
  |-------- lib
             |--------- log4j.properties
             |--------- log4j-1.2.15.jar

Когда я пытаюсь запустить app.jar, они находят log4j.jar, но не log4j.properties:

log4j:WARN No appenders could be found for logger (main.Program).
log4j:WARN Please initialize the log4j system properly.

Мой log4j.properties файл выглядит так:

log4j.rootLogger=INFO, stdout, file

PATTERN=[%d] [%p] [%c{1}]: %m%n

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=${PATTERN}

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.File=${logger_file_path}
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=${PATTERN}

Ответы [ 6 ]

17 голосов
/ 22 ноября 2013

еще один способ сделать это: -Dlog4j.configuration=file:"./log4j.properties"

12 голосов
/ 25 октября 2012

Есть три способа узнать:

  1. Добавить log4j.properties в app.jar
  2. Поместить log4j.properties в «папку» (там, где существует JAR) иизмените путь к классу на .lib/log4j-1.2.15.jar.
  3. . Например, поместите log4j.properties в папку с именем conf и измените путь к классу на ./conf/.
* 1016.* Я пытался, это работает.
11 голосов
/ 17 января 2012

Не помещайте сам log4j.properties в путь к классам, но каталог, содержащий этот файл.

Class-Path: lib lib/log4j-1.2.15.jar
1 голос
/ 17 января 2012

Добавить log4j.properties к app.jar.

0 голосов
/ 24 февраля 2016

Я попробовал ответ Джеспера, и сначала он не сработал. Тогда я попробовал с

Class-Path: lib/ lib/log4j-1.2.15.jar

И это сработало после этого.

0 голосов
/ 23 февраля 2015

попробуйте выполнить:

javar -jar -Dlog4j.configuration = file: "./ log4j.properties" app.jar

...