web-dev-qa-db-ja.com

log4jを使用してテキストファイルに書き込む方法は?

標準出力ではなく、これらの行をテキストファイルに出力するために、次のコードを変換する方法を考えています。

import org.Apache.log4j.Logger; import org.Apache.log4j.PropertyConfigurator;

public class HelloWorld {

    static final Logger logger = Logger.getLogger(HelloWorld.class);

    public static void main(String[] args) {
        PropertyConfigurator.configure("log4j.properties");
        logger.debug("Sample debug message");
        logger.info("Sample info message");
        logger.warn("Sample warn message");
        logger.error("Sample error message");
        logger.fatal("Sample fatal message");
    }
}

プロパティファイルは次のとおりです。

log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.Apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.Apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%m%n

ありがとう。

23
RanZilber

ConsoleAppenderをFileAppenderに変更します。

org.Apache.log4j.RollingFileAppender便利になります。これを使用する場合、fileNameのプロパティを追加する必要があり、maxFileSizeも設定する必要があります。次に例を示します(これらをlog4j.propertiesファイルに入れます)。

log4j.appender.NotConsole=org.Apache.log4j.RollingFileAppender
log4j.appender.NotConsole.fileName=/some/path/to/a/fileName.log
log4j.appender.NotConsole.maxFileSize=20MB

他のアペンダーがあります。 DailyRollingFileAppenderは時間に基づいてロールします。 FileAppenderはロールしません。 RollingFileAppenderを使用する場合、maxFileSizeの適切な値を推測し、問題が発生している場合は将来のサイズに対処する必要があります。

32
DwB

ConsoleAppenderではなく、FileAppenderをすぐに使用します。

構成の簡単な例を次に示します。さらに、レイアウトを構成します。最初のアプローチでは省略できます。

log4j.appender.F=org.Apache.log4j.FileAppender
log4j.appender.F.File=mylog.log
log4j.appender.F.layout=org.Apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n
6
AlexR

以下が役立ちます。

メインメソッドを含むクラス

    package abc;

    import org.Apache.log4j.Logger;
    import org.Apache.log4j.PropertyConfigurator;

    public class ClassOne {
        static Logger logger = Logger.getLogger(ClassOne.class);

        public static void main(String[] args) {
             PropertyConfigurator.configure("log4j.info"); //log4j.info file should be in the class path(same location as ClassOne.class)

             logger.info("Program started.... "); //Whenever you want to write something to the log text file use logger.info("Log Message")

        }
    }

log4j.infoファイル

   log4j.rootLogger=INFO, FILE

   # Define the file appender
   log4j.appender.FILE=org.Apache.log4j.FileAppender // Replacing ConsoleAppender with FileAppender gives text file logging

   # Set the name of the file
   log4j.appender.FILE.File=src/abc/log.out //Here you can specify either absolute or relative path

   # Set the immediate flush to true (default)
   log4j.appender.FILE.ImmediateFlush=true

   # Set the threshold to debug mode
   log4j.appender.FILE.Threshold=debug

   # Set the append to false, overwrite
   log4j.appender.FILE.Append=false

   # Define the layout for file appender
   log4j.appender.FILE.layout=org.Apache.log4j.PatternLayout
   log4j.appender.FILE.layout.conversionPattern=%d %m%n
2
harshainfo

次の設定でも動作するはずです

ログメッセージをstdoutに直接送信します###

log4j.appender.stdout = org.Apache.log4j.FileAppender
log4j.appender.stdout.fileName = error.log
log4j.appender.stdout.layout = org.Apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =%d {ABSOLUTE}%5p%c {1}:%L-%m%n

1
Muhammad Abid

log4j.properties内

# Define the root logger with file appender
log4j.logger.App = DEBUG ,CA

#set file text
log4j.appender.CA = org.Apache.log4j.RollingFileAppender
log4j.appender.CA.File = D:\\database.log
log4j.appender.CA.maxFileSize = 20MB
log4j.appender.CA.MaxBackupIndex=10
log4j.appender.CA.layout=org.Apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
0
Thailand