webentwicklung-frage-antwort-db.com.de

wie schreibe ich mit log4j in eine Textdatei?

Ich frage mich, wie der folgende Code konvertiert werden kann, um diese Zeilen in eine Textdatei und nicht in die Standardausgabe auszugeben:

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");
    }
}

Die Eigenschaftendatei lautet:

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

Vielen Dank.

23
RanZilber

Ändern Sie den ConsoleAppender in einen FileAppender.

Ich finde org.Apache.log4j.RollingFileAppender, um nützlich zu sein . Wenn Sie dies verwenden, müssen Sie Sie müssen eine Eigenschaft für den Dateinamen hinzufügen, und Kann auch maxFileSize festlegen .____ Hier ist ein Beispiel (fügen Sie diese in die Datei log4j.properties ein):

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

Es gibt andere Appender .DailyRollingFileAppender Rollen basierend auf der Zeit .FileAppender rollt nicht . Wenn Sie die RollingFileAppender verwenden, Müssen Sie einen guten Wert für maxFileSize und .__ schätzen. Geben Sie die Größe dann zu einem späteren Zeitpunkt an, wenn Probleme auftreten.

32
DwB

Verwenden Sie kurz FileAppender anstelle von ConsoleAppender.

Hier ist ein einfaches Konfigurationsbeispiel. Es konfiguriert zusätzlich das Layout. Sie können es für den ersten Ansatz weglassen.

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{[email protected]:mm:ss} %-5p (%13F:%L) %3x - %m%n
6
AlexR

Folgendes wäre hilfreich:

Klasse mit Hauptmethode

    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 Datei

   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
1
harshainfo

folgende Konfiguration sollte ebenfalls funktionieren

direkte Protokollnachrichten an 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

in 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