7

私はlog4jの初心者です。これは私が持っているものです。STAND ALONE Java APPLICATION のさまざまなパッケージに約 20 個のファイルがあります。ログファイルを使用して書き込もうとしています。

以下は、クラスパスにあるlog4j.properties ファイルです。

log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = /ParentFolder/ChildFolder/application.log
log4j.appender.R.Append = true
log4j.appender.R.DatePattern = '.'yyy-MM-dd
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n

以下は、私のメインメソッドでロギングを初期化するコードです

final String LOG_FILE = "C:/eclipse_workspace/lib/log4j.properties"; 
      Properties logProp = new Properties();      
      try     
      {      
       logProp.load(new FileInputStream (LOG_FILE));  
            PropertyConfigurator.configure(logProperties);      
            logger.info("Logging enabled");    
      }     
      catch(IOException e)                
      {       
     System.out.println("Logging not enabled");       
                 }  

アプリケーションのすべてのJavaクラスに、次のコードがあります

import org.apache.log4j.*;

private static final Logger logger = Logger.getLogger(TheActualClassName.class); 

しかし、アプリを実行すると、次の警告メッセージが表示されます

log4j:WARN ロガー (com.xxx.myApp.MainProgram.MyFileName) のアペンダーが見つかりませんでした。log4j:WARN log4j システムを適切に初期化してください。log4j:WARN 詳細については、http: //logging.apache.org/log4j/1.2/faq.html#noconfigを参照してください。

私は何を間違っていますか?? ログファイル「application.log」が生成されていません

4

3 に答える 3

7

次の行が必要になる場合があります。

# Set root logger level to INFO and appender to R.
log4j.rootLogger=INFO, R

ルート ロガーは常に利用可能で、名前はありません。

バージョン 1.2.7 以降、log4j (クラスを使用) は最初にクラスパスLogManagerを検索します。log4j.xmlが存在しない場合log4j.xml、log4j (クラスを使用)はクラスパスでLogManager検索します。log4j.properties

于 2012-05-10T20:43:17.670 に答える
4

という名前のファイルを使用する場合log4j.properties、それがアプリケーションのクラスパス上にある場合は、呼び出す必要はありません。または--log4jは、最初に初期化されたとき(最初にロガーをロードしたとき)に自動的にこれを行います。PropertyConfigurationDOMConfigurator

エラーメッセージは、構成がロードされていないことを示しているようです。

アプリケーションにVM引数を追加し-Dlog4j.debugて、log4jが起動時に大量の情報を吐き出すようにします。これには、ロードしようとするファイルや、構成で検出された値が含まれます。

于 2012-05-10T20:43:10.407 に答える
0

Raghu さん、log4j プロパティの構成にスタンドアロン構成を使用している場合は、BasicConfigurator.configure() メソッドを使用してアペンダーの問題を解決できます。

于 2015-01-09T14:46:16.773 に答える