web-dev-qa-db-ja.com

log4jのデフォルトのログファイルダンプパスとは

こんにちは、プログラミングの概念は初めてで、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をゼロから学ぶことができる最高のサイトも教えてください。ありがとう!!

31
manisha

ログ出力をファイルにリダイレクトするには、FileAppenderを使用し、log4j.properties/xmlファイルで他のファイルの詳細を定義する必要があります。同じもののサンプルプロパティファイルを次に示します。

# Root logger option
log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.Apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.Apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Log4jの使用方法の詳細については、このチュートリアルに従ってください。

http://www.mkyong.com/logging/log4j-log4j-properties-examples/

31
Juned Ahsan

デフォルトでは、Log4j標準出力にログを記録します。つまり、Eclipseのconsoleビューでログメッセージを表示できるはずです。ファイルにログを記録するには、classpathlog4j.propertiesファイルでFileAppenderを明示的に使用する必要があります。

classpathに次の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

注:上記により、example.log現在の作業ディレクトリ(つまりEclipseのプロジェクトディレクトリ)。これにより、同じlog4j.propertiesが互いにログを上書きせずに異なるプロジェクトで動作できるようになります。

参照
Apache log4j 1.2-log4jの簡単な紹介

7
Ravi Thapliyal

このサンプルコードを Here 、rightからコピーしましたか?
今、あなたがそこに見ることができるように、彼らが定義した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パスなどの要件に従って変更を行います

7
Jubin Patel

ログファイルを生成するためにlog4jプロパティを使用していない場合は、IDEのコンソールビューでログ情報を確認できます。これらのプロパティがログファイルの生成に使用されます。簡単なサンプルを以下に示します。

# Global logging configuration
log4j.rootLogger=DEBUG, stdout, R

# SQL Map logging configuration...
log4j.logger.com.ibatis=INFO
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=INFO
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=INFO
log4j.logger.com.ibatis.SQLMap.engine.impl.SQL MapClientDelegate=INFO

log4j.logger.Java.sql.Connection=INFO
log4j.logger.Java.sql.Statement=DEBUG
log4j.logger.Java.sql.PreparedStatement=DEBUG
log4j.logger.Java.sql.ResultSet=INFO

log4j.logger.org.Apache.http=ERROR

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.R=org.Apache.log4j.RollingFileAppender
log4j.appender.R.File=MyLog.log
log4j.appender.R.MaxFileSize=50000KB
log4j.appender.R.Encoding=UTF-8

# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.Apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F\:%L) - %m%n
0
IConfused