2017-09-05 70 views
0

我有一個Java獨立應用程序。與主要方法,這些進口2:JAVA:在獨立應用程序中配置logback

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

private static final Logger log = LoggerFactory.getLogger(PecadorDeLaPradera.class); 

在同一文件夾中我也有一個logback.xml,但我不知道如何告訴使用的logback.xml到程序配置日誌

我找不到類似org.apache.log4j.PropertyConfigurator

任何一類我在SA有這logback.xml我正在運行的Java類的文件夾:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <!-- trace, debug, info, warn, error, fatal --> 
    <timestamp key="myTimestamp" datePattern="yyyy-MM-dd'_'HH-mm-ss.SSS"/> 


    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> 
     <resetJUL>true</resetJUL> 
    </contextListener> 

    <!-- To enable JMX Management --> 
    <jmxConfigurator/> 

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%d{"yyyy-MM-dd HH:mm"} [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>pecador.log</file> 

     <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
      <fileNamePattern>handler.%i.log.zip</fileNamePattern>    
      <minIndex>1</minIndex> 
      <maxIndex>3</maxIndex> 
     </rollingPolicy> 

     <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
      <maxFileSize>1MB</maxFileSize> 
     </triggeringPolicy> 
     <encoder> 
      <pattern>%d{"yyyy-MM-dd HH:mm"} [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
    </appender> 



    <!-- <logger name="org.springframework.orm.jpa"  level="debug" /> -->  
    <logger name="com.calzada.pecador" level="debug" /> 


    <root level="info"> 
     <appender-ref ref="CONSOLE" /> 
     <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

我也運行應用程序。與程序參數:

-Dlogback.configurationFile=/Users/calzada/Dev/J2EE/eclipseWSJ2EE/myApp/src/com/calzada/pecador/logback.xml 

,我得到這個錯誤:

java.util.MissingResourceException: Can't find bundle for base name -Dlogback.configurationFile=/Users/nullpointer/Development/J2EE/eclipseWSJ2EE/myApp/src/com/calzada/pecador/logback.xml, locale en_ES 

使用的庫是logback-classic-1.2.3.jar

回答

1

這裏的logback如何進行自我配置:

​​

您還可以點使用系統參數在特定配置文件中回退。從文檔:

You may specify the location of the default configuration file with a system property named "logback.configurationFile". The value of this property can be a URL, a resource on the class path or a path to a file external to the application.

java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1

以上所有取自docs

根據你的問題,你有一個logback.xml,但這個文件與你的班級在「相同的文件夾」。除非你的類在根包中,這意味着logback.xml不在類路徑的根目錄中,所以Logback不會發現它。爲了向的logback從這個文件本身配置,你可以做下列操作之一:

  • 將您在類路徑的根logback.xml(這個Maven項目就像複製一樣簡單logback.xmlsrc/main/resources
  • 運行您的Java程序用-Dlogback.configurationFile=/path/to/logback.xml