Конфигурация регистрации Java только частично учтена - PullRequest
0 голосов
/ 13 февраля 2009

У меня проблема с проектом, который я пытаюсь доставить с помощью упаковщика one-jar , чтобы упростить процесс развертывания.
Без упаковки все работает нормально, и конфигурация регистрации отлично загружена, но внутри упаковки применяется только часть конфигурации.

Итак, вот logging.properties, которые я использую:

handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = C:\\MyPath\\logging.csv
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = my.package.logging.Formatter
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = my.package.logging.Formatter

А в моем основном классе вот как я его загружаю:

public class MainClass {
  public static void main(final String[] args) {
    try {
      LogManager.getLogManager().readConfiguration(
        new MainClass().getClass().getResourceAsStream("logging.properties"));
      // main process goes here.
    } catch(Exception e) {
      // Exception handling
    }
  }
}

Уровень журнала, а также шаблон FileHandler хорошо понятны, поскольку запись заканчивается в правильном файле, а выводится в виде строки XML, что заставляет меня думать, что форматтер не загружается, поскольку он обычно выводит формат CSV. 1012 *

Может ли это быть связано с проблемой classpath? Кто-нибудь знает, как с этим справиться?

Ответы [ 2 ]

1 голос
/ 13 февраля 2009

Возможно, в ваших банках есть несколько файлов logging.properties с похожими, но немного другими настройками. Когда вы объединяете их с одним сосудом, порядок меняется, и один из них скрывается. Сделайте "jar -tf * .jar | grep logging.properties" и посмотрите, что вы видите.

Если это не сработает, можете ли вы попытаться распаковать результат onejar в структуру каталогов, а затем запустить с каталогом в пути к классам вместо jar? Это позволит вам увидеть, связано ли это с jar, и на самом деле проверить свойства logging.properties, которые есть у вас в onejar, и посмотреть, соответствует ли оно вашим ожиданиям.

0 голосов
/ 13 июля 2010

Использование LogManager.getLogManager().readConfiguration(LogManager.class.getResourceAsStream("/logging.debug.properties"));

(обратите внимание на дополнительную косую черту).

...