2011-08-29 5 views
2

로깅 요구 사항에 맞게 로그백을 구성했습니다. Windows 시스템에서 응용 프로그램을 실행할 때 예상대로 작동하고 적절한 로그가있는 로그 파일을 생성합니다. 그러나 Ubuntu 머신에 동일한 runnable jar 파일을 배포하면 로그 파일이 생성되지 않습니다. 어떤 구성 logback prints out a lot of debug messages to System.out에 잘못우분투에서 로그백이 로그 파일을 생성하지 않습니다.

<configuration> 
    <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> 
    <!-- in the absence of the class attribute, it is assumed that the 
     desired discriminator type is 
     ch.qos.logback.classic.sift.MDCBasedDiscriminator --> 
<discriminator> 
    <key>uniqueNumber</key> 
    <defaultValue>unknown</defaultValue> 
</discriminator> 
<sift> 
    <appender name="FILE-${uniqueNumber}" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${uniqueNumber}.log</file> 
    <append>true</append> 
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
        <FileNamePattern>${uniqueNumber}_%i.log</FileNamePattern> 
        <MinIndex>1</MinIndex> 
        <MaxIndex>10000</MaxIndex> 
      </rollingPolicy> 
      <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
        <MaxFileSize>5MB</MaxFileSize> 
      </triggeringPolicy> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <pattern>%d [%thread] %level %mdc %logger{35} - %msg%n</pattern> 
    </layout> 
    </appender> 
</sift> 
    </appender> 
    <root level="DEBUG"> 
    <appender-ref ref="SIFT" /> 
    </root> 
</configuration> 

답변

5

경우 logback.xml의 코드는 다음과 같습니다. 만약 당신이 그들을 보지 못한다면 아마 파일이 생성되었지만 당신은 단지 어디에 있는지 모른다.

<configuration debug="true">을 사용하여 로그백 인쇄를 명시 적으로 활성화 할 수 있습니다. 더 많은 작업을 할 수 있습니다.

파일을 찾을 수없는 경우 lsof을 사용하여 응용 프로그램의 열린 파일의 전체 경로를 찾습니다.

+0

안녕하세요 @ Thorbjorn, 답변 해 주셔서 감사합니다. 내가 실행중인 항아리와 같은 폴더에있는 파일을 검색하고, 루트 폴더, var/logs 폴더 및 luck.Also없이 더 많은 폴더에있는 로그 파일을 검색해도 디버그 메시지를받지 못했습니다. – Saurabh

+0

Logback Debug Diagnostics를 활성화 했습니까? –

+0

예 디버그 진단을 활성화하고 logback-test.xml과 같은 Windows 로그를 볼 수 있습니다. logback.xml..etc을 찾았습니다. – Saurabh

0

간단한 로그백 구성을 사용하더라도 비슷한 문제가 발생했습니다.

logback.xml 파일에서 필자는 appender에 대해 상대 경로 대신 절대 경로를 사용했지만 구성은 Linux 전용이며 Java 응용 프로그램을 배포하는 컴퓨터는 모두 동일한 구성/파티션 구성표를 공유합니다.

적어도이 파일은 내게 일어난 일이며 응용 프로그램 디렉토리의 한 디렉토리에 있어야합니다. JAR을 PATH/my.jar에서 실행 중이며 로그가 ../PATH이어야합니다.

+0

안녕하세요 마일로, 경험을 공유해 주셔서 감사합니다. 시스템의 거의 모든 곳에서 파일을 검색했지만 찾지 못했습니다. – Saurabh

관련 문제