Log4j: Ausgabe in Datei

Status
Nicht offen für weitere Antworten.
G

Gustaf

Gast
Hallo, hab ein Problem mit dem Loggen mit log4j. Habe den Beispielcode benutzt, der mitgegeben wird:
Code:
package Logger;


import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;

public class Hello {
    
  static Logger logger = Logger.getLogger(Hello.class);
    
  public static void main(String argv[]) {
	BasicConfigurator.configure();
	logger.debug("Hello world.");
	logger.info("What a beatiful day.");
  }
}
Klappt auch wunderbar. Nun möchte ich es jedoch in einer Datei ausgegeben bekommen, und komme auch mit googlen usw. nicht wirklich weiter.
Danke für alle Hilfen.
Gustaf
 

P3AC3MAK3R

Top Contributor
Hier gibt es auch noch ein Codebeispiel:

Code:
import org.apache.log4j.*;

public class SampleLog {

  static Category iAll     = Category.getInstance("SampleLog");
  static Category iMethods = Category.getInstance("SampleLog.methods");

  public SampleLog() {
    iMethods.debug("Entering SampleLog constructor");
  }

  public void a() {
    iMethods.debug("Entering SampleLog.a()");
  }
  public void b() {
    iMethods.debug("Entering SampleLog.b()");
  }
  public void c() {
    iMethods.debug("Entering SampleLog.c()");
  }

  public static void main(String[] args) {
    PropertyConfigurator.configure  ("samplelog.properties");
    iAll.info("Creating SampleLog object ...");
    SampleLog sl = new SampleLog();
    iAll.info("... done");
    iAll.info("Executing methods ...");
    sl.a();
    sl.b();
    sl.c();
    iAll.info("... done");
  }
}

Für die Konfiguration wird dabei folgende Konfigurationsdatei verwendet:

Code:
log4j.category.SampleLog=INFO, slAppender

log4j.appender.slAppender=  org.apache.log4j.ConsoleAppender
log4j.appender.slAppender.layout=  org.apache.log4j.PatternLayout
log4j.appender.slAppender.layout.  ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.category.SampleLog.methods=DEBUG, methodAppender

<.999>log4j.appender.methodAppender=  <.999>org.apache.log4j.net.SocketAppender
log4j.appender.methodAppender.RemoteHost=  localhost
log4j.appender.methodAppender.Port=4445

Ich arbeite mich auch gerade erst in Log4j ein, aber ich vermute, daß es ausreicht, statt einem "ConsoleAppender" einen "FileAppender" zu verwenden.
 

meez

Top Contributor
Geht auch einfacher:


Code:
package Logger;


import org.apache.log4j.*;


public class Hello {
   
  static Logger logger = Logger.getLogger(Hello.class);
   
  public static void main(String argv[]) {
   String datei = ...
   String logpattern = "%d{MM.dd.yyyy\tHH:mm:ss}\t%p\t%m %n";
   logger.addAppender(new FileAppender(new PatternLayout(logpattern), datei, true));
   logger.debug("Hello world.");
   logger.info("What a beatiful day.");
  }
}

Das Pattern musst du halt anpassen...;)
 

P3AC3MAK3R

Top Contributor
Ich habe es jetzt so gelöst:

Code:
package loggingtest;

import java.io.IOException;

import org.apache.log4j.Appender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;

public class LoggingTest {

    static Logger logger = Logger.getRootLogger();

    static String filename = "C:\\Test.log";

    static String pattern = "%d{MM.dd.yyyy\tHH:mm:ss}\t%p\t%m %n";

    public static void main(String[] args) {

        // fileAppender erzeugen
        Appender fileAppender = null;
        try {
            fileAppender = new FileAppender(new PatternLayout(pattern),
                    filename, true);
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(0);
        }

        // den fileAppender dem logger zuordnen
        logger.addAppender(fileAppender);

        // Logging-Level setzen
        logger.setLevel(Level.DEBUG);

        logger.debug("Methode main gestartet");

        method1();
        method2();
        method3();

        logger.debug("Methode main beendet");
    }

    private static void method1() {
        logger.debug("Methode method1 gestartet");
        logger.debug("Methode method1 beendet");
    }

    private static void method2() {
        logger.debug("Methode method2 gestartet");
        logger.debug("Methode method2 beendet");
    }

    private static void method3() {
        logger.debug("Methode method3 gestartet");
        logger.debug("Methode method3 beendet");
    }
}

Feuer frei! ;)
 
G

Gustaf

Gast
Hab jetzt das untersten Beispiel von Peaemaker versucht, da ich es am übersichtlichsten halte und den Code gut verstehen kann. Leider wird die log Datei bei mir nicht erzeugt. Muss in diesem Beispiel die Konfigurationsdatei auch verwendet werden, und wenn ja wie und wohin kommt diese ?
Fragen über Fragen, Danke fürdie Antworten...
 

P3AC3MAK3R

Top Contributor
Das Beispiel von oben kommt eigentlich ohne Konfigurationsdatei aus.

Ich habe das Beispiel nochmal so umgestrickt, daß es eine Konfigurationsdatei verwendet:

Code:
package loggingtest;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class LoggingTest {

    static Logger logger = Logger.getRootLogger();

    public static void main(String[] args) {

        // Log4j-Konfiguration laden
        PropertyConfigurator.configure("log4j.properties");

        logger.debug("Methode main gestartet");

        logger.debug("DEBUG-Meldung");
        logger.info("INFO-Meldung");
        logger.warn("WARN-Meldung");
        logger.error("ERROR-Meldung");
        logger.fatal("FATAL-Meldung");

        method1();
        method2();
        method3();

        logger.debug("Methode main beendet");
    }

    private static void method1() {
        logger.debug("Methode method1 gestartet");
        logger.debug("Methode method1 beendet");
    }

    private static void method2() {
        logger.debug("Methode method2 gestartet");
        logger.debug("Methode method2 beendet");
    }

    private static void method3() {
        logger.debug("Methode method3 gestartet");
        logger.debug("Methode method3 beendet");
    }
}

Die Konfigurationsdatei "log4j.properties" sieht wie folgt aus:

Code:
# dem rootLogger den Appender A1 zuordnen
log4j.rootLogger=, A1

# Appender A1 konfigurieren
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.append=false
log4j.appender.A1.file=C:\\Test.log

# Layout des Appenders A1 konfigurieren
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss,SSS}\t%c\t%p\t%m%n
 
G

Gast

Gast
Hatt sich erledigt..klappt bestens , danke. Steht jedoch ne ganze Menge in der Logdatei drinne. Dachte dort werden nur die selbst definierten debugs reingeschrieben z.B.
logger.debug("Methode main gestartet");
ist jedoch wesentlich mehr. Danke für die Hilfe
Gustaf
 

P3AC3MAK3R

Top Contributor
Verstehe ich Dich richtig, daß Deine Logdatei nur die Debug-Meldungen selbst (also z. B. "Methode main gestartet") enthalten soll?

In dem Fall mußt Du einfach die ConversionPattern anpassen.

Vorher:

Code:
log4j.appender.A1.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss,SSS}\t%c\t%p\t%m%n

Nachher:

Code:
log4j.appender.A1.layout.ConversionPattern=%m%n
 

P3AC3MAK3R

Top Contributor
:D

Ich glaube, der Spruch, den ich in einem Dokument zu Log4j gelesen habe, stimmt echt. Da stand nämlich etwas davon, daß die Verwendung dieses Tools süchtig machen kann. ;)
 

P3AC3MAK3R

Top Contributor
Ich arbeite mit Eclipse und habe sie dabei im Projektverzeichnis (auf Root-Ebene) abgelegt.

Alternativ dazu kann man aber auch einfach den vollen Pfad zu der Datei angeben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D PlugIn-Wrapper für Log4J IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N log4j.properties in build.xml angeben IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
K Eclipse löscht die Datei Log4j.properties im WEB-INF/classes IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
K Log4J Problem IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
B Problem bei der Ausgabe IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
R jasper reports rpt-ausgabe drucker abhängig ? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
F Eclipse Vergleich von Ausgabe mit Code IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
F Eclipse Probleme mit Eingabe/ausgabe trotz fehlerfreier Kompilierung IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
L Ausgabe Befehl in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
H Consolen-Ausgabe begrenzt?? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N Erstellen einer ausführbaren jar Datei in Eclipse (Linux Mint) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 17
G JPackage in xml-Datei? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
B Eclipse Problem mit jar Datei? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
jar Datei funktioniert nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 19
B .exe Datei für Eclipse Java Programm erstellen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
B Wie nicht-java Datei mit Eclipse benutzen (Excel Datei einlesen)? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 16
M IDEA IntelliJ Jar Datei Bilder IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
J Eclipse Trotz .jar-Datei im Classpath Fehler bei import IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
P Eclipse- Zip Datei als Prgramm IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
W Eclipse Rechnerabsturz - Datei der Main zerstört? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
T .project Datei im Explorer ohne Namen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
it_is_all NetBeans Clean and Build Project - Buttons ohne Funktion bei jar-Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 22
R wohin mit der pellet jar-Datei? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
M Eclipse Fehler beim Ausführen der ausführbaren Jar-Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
S Eclipse Ausführbare Datei aus mehreren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
stylegangsta Eclipse Hat eclipse eine Macke oder mein Code Array Datei einlesen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
L kompilierbare Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
T Eclipse Import Wizard: Text Datei verarbeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
L NetBeans und Ausgabenumlenkung in Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
M MS SQL Management Studio - Export der Projekt-Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
C NetBeans Jar Datei - Ausführbar mit Sourcen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D Jar Datei lässt sich nicht starten. IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
O Eclipse Jar-Datei erstellen und begrenzen auf ein Interface IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
A EGit-Synchronisation der gleichen Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
S Eclipse Datei einlesen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Eclipse Class-Datei exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
F notepad++ findet datei nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
C Eclipse Wie kann ich .class-Datei mit eclipse importieren? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
M NetBeans Jar Datei erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
T Eclipse IDE friert beim Öffnen einer Datei im Editor ein IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
K Jar Datei inkl. Zusatzdateien IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
K Eclipse txt Datei wird nicht gelesen??? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
R NetBeans .Jar Datei öffnen und ändern IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
H Eclipse Einfügen einer Zip-Datei im Menuepunkt Installed IREs IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
B Beim erstellen einer .jar Datei wird fremde Library nicht erkannt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
M Eclipse konsolen output in datei umleiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
M eclipse sound datei import IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
B Projekte in NetBeans / ausführbare Datei erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
G Plugin i18nedit öffnet Datei nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
K Eclipse - JAAS config Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N jar datei ins projekt hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
J Lauffähige JAR-Datei erstellen mit Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
H uml datei als word dokument oder ähnliches? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
B eclipse problem beim öffnen einer datei absturz IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
G *.jar-datei in editor öffnen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
H jar Datei importieren in Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N jar-Datei öffnen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
G Bilder in jar-Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
A eine ausfürbare datei (.exe) einer netbeans java-Applikation IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
M Eclipse und extrahieren von Strings für Property Datei? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
M [Netbeans] Class Datei einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
P Batch-Datei "dynamisch" erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
S eclipse Propertie Datei sehen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
D Ordner zu jar-Datei hinzufügen (NetBeans) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
H Eclipse: JAR-Datei einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Ausführbare Datei für z.b. Windows erzeugen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
G Aus Jbuilder projekt exe datei machen??? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
G java programm in exe datei packen?? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3

Ähnliche Java Themen


Oben