2016-10-25 2 views
0

나는 이상한 문제가 생겨서 도움을 요청합니다. 나의 수색이 명확한 결과를주지 않았다는 사실에 비추어, 나는 명백한 무언가를 다만 잊었다, 그러나 나는 그것이 인 무슨 이해할 수 없다.lost launch4j의 로그백 구성

그래서 Java에는 프로그램이 있습니다. ("자원"경로에 logback.xml) Logback 구성 :

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

그리고 넷빈즈에서 잘 작동합니다.

하지만이 (Gradle shadow 및 launch4j 플러그인을 사용하여) Windows에서 Exe를 작성하면 속성 파일이 무시 된 것 같습니다. 내 exe를 시작할 때마다 내 모든 로그가 올바른 위치에있는 "destination_IS_UNDEFINED"파일 (exe 파일과 같은 폴더에 있음)이 있습니다. "logback.xml"의 파일 이름을 "하드 코드"하면 예상대로 작동하지만 왜 "속성"을 읽을 수 없습니까? 그들은 Jar에 있으며, Launch4j는 exe 파일을 생성하고 거기에는 또 다른 속성 인 File이 있습니다.이 프로그램은 올바른 프로그램을 읽습니다.

<property resource=".\app\LOG.properties" /> 

여기에 오류가 있습니다 ... 분리 기호로 "/"를 시도했지만 어쨌든 도움이되지 않았습니다. 나는 틀린 무엇을 doung인가?

사실 내가 질문이 하나 더 있습니다 : jar 파일의 등록 정보를 저장하는 올바른 방법은 무엇입니까? 내 모든 속성 (IDE에서와 마찬가지로)이있는 폴더를 갖는 것이 좋을 것이고 사용자는 프로젝트를 다시 컴파일하지 않고 변경할 수 있습니다 ("* .exe"프로그램은이 파일을 "읽어야"합니다). Jar 대신 폴더). 나는 그것이 everione에 의해 1000 번 만들어 졌다고 확신한다. 거기에 어떤 샘플이나 설명이 있습니까 (어쩌면 내가 잘못 찾고, 왜냐하면 나는 영어로 충분하지 않다, 내가 원하는 것을 찾을 수 없다는 것을 알고 있기 때문에).

고맙습니다.

EDITED : 이렇게 첫 번째 "문제"가 해결되어 정말 바보 같았습니다. 추가 점이있었습니다. 누구든지 두 번째 질문에 대한 조언이 있습니까?

답변

0

나는 XML

<property resource=".\app\LOG.properties" /> 

당신이 응용 프로그램 폴더의 위치에 대한 확신에 다음 줄을 확인 하시겠습니까?

+0

안녕하세요! 그래, 오류가 있지만 거기에 무엇이 잘못 ... "응용 프로그램"폴더 IDE에서 "자원"및 컴파일 된 JAR "루트"에 있습니다. 그러나 내가 쓴 것처럼, 나는 또한 프로그램이 올바른 것을 읽는 다른 속성들을 가지고있다 ... –

+0

오 마이 갓 ... " "잘못된":))))) –