문제

나는 내가 사용하는 프로젝트에 문제가있다. 한 자르 배포 프로세스를 단순화하기 위해 패키터.
포장이 없으면 모든 것이 정상적으로 작동하며 로깅 구성이 완벽하게로드되지만 포장 내에서 구성의 일부만 구성됩니다.

여기에 로깅이 있습니다.

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
    }
  }
}

로깅이 올바른 파일로 끝나기 때문에 로그 레벨과 파일 핸들러 패턴은 잘 이해되지만 행 XML 출력으로서 Formatter가 일반적으로 CSV 형식을 출력하여로드되지 않는다고 생각합니다.

ClassPath 문제와 관련이있을 수 있습니까? 누구든지 이것을 처리하는 방법을 알고 있습니까?

도움이 되었습니까?

해결책

사용 LogManager.getLogManager().readConfiguration(LogManager.class.getResourceAsStream("/logging.debug.properties"));

(여분의 슬래시에 주목하십시오).

다른 팁

항아리 안에있을 수 있습니다. 하나 이상의 로깅 .properties 파일과 비슷하지만 약간 다른 설정이 있습니다. 당신이 그것들을 하나의 자르와 결합하면 순서가 변경되고 그중 하나는 숨겨집니다. "jar -tf *.jar | grep logging.properties"를 수행하고 보는 것을 확인하십시오.

그래도 작동하지 않으면 Onejar 결과를 디렉토리 구조로 고정시키고 항아리 대신 클래스 경로의 디렉토리로 실행 해보겠습니까? 그러면 항아리와 관련이 있는지 확인하고 실제로 로깅을 검사합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top