40

こんにちは、私はプログラミングの概念が初めてで、log4j で何かを解決する傾向があります。だから私は次のコードを見つけたLog4jチュートリアルを読んでいます:

package test;
import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;


public class Log4jExample {

    /* Get actual class name to be printed on */
        static Logger log = Logger.getLogger(Log4jExample.class.getName());
        public static void main(String[] args)throws IOException,SQLException
        {
            log.debug("Hello this is an debug message");
            log.info("Hello this is an info message");
        }

}

しかし、これをEclipseで実行した後、生成されたログファイルを見つけることができません. ファイルがダンプされている場所を誰か教えてもらえますか? また、Log4j と Java Doc を一から学べる最高のサイトを教えてください。ありがとう!!

4

4 に答える 4

8

このサンプル コードは、ここからコピーしたものですよね?
今、彼らが定義しているファイルを見ることができるようにproperty、同じことをしましたか? そうでない場合は、log4j のプロパティ ファイルを使用してプロジェクトに以下のコードを追加します。

したがって、log4j.properties ファイルの内容は次のようになります。

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

logパスのような要件に従って変更を加えます

于 2013-06-27T06:40:45.330 に答える
8

デフォルトでは、Log4jログは標準出力に記録されます。つまり、Eclipse のコンソールビューでログ メッセージを確認できるはずです。ファイルにログを記録するには、クラスパス内のファイルでFileAppender定義して明示的に使用する必要があります。log4j.properties

クラスパスlog4j.propertiesに次のファイルを作成します。これにより、メッセージをファイルとコンソールの両方に記録できます。

log4j.rootLogger=debug, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=example.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n

注:上記は、現在の作業ディレクトリ(つまり、Eclipse のプロジェクト ディレクトリ)にexample.log作成するため、同じlog4j.propertiesが、互いのログを上書きすることなく、異なるプロジェクトで機能します。

参考文献:
Apache log4j 1.2 - log4j の簡単な紹介

于 2013-06-27T06:36:32.143 に答える