2017-09-05 6 views
0

私はJavaスタンドアロンアプリを持っています。これらの2つの輸入品との主な方法、と:同じフォルダにJAVA:スタンドアロンアプリでログバックを設定する

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

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

私もlogback.xmlを持っているが、私はlogback.xmlにを使用するプログラムを伝える方法がわかりません私はSAでこのlogback.xmlを持って、私はorg.apache.log4j.PropertyConfigurator

に似た任意のクラスを見つけることができませんでした

ログをconfigコン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> 

私もapplを実行します。プログラムの引数を持つ:

-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は、このファイルから自分自身を設定するために、次のいずれかを行うことができます

  • (Mavenプロジェクトのために、これはsrc/main/resourceslogback.xmlをコピーするのと同じくらい簡単です)、あなたのクラスパスのルートでごlogback.xmlを置き
  • Javaプログラムを-Dlogback.configurationFile=/path/to/logback.xml
で実行してください
関連する問題