Allgemeine Frage zu Java Logging (JLA, Log4J)

Status
Nicht offen für weitere Antworten.

mad-din

Bekanntes Mitglied
Hi Leute!

Ich hab eine allgemeine Verständnisfrage: und zwar will ich mich in die Java Logging Api einarbeiten (später danna auch in Log4j, aber das dürfte in etwa gleich sein). Dazu habe ich mir 3 Klassen geschrieben. Die erste Klasse "Startup" enthält eine main()-Methode. Diese main()-Methode instanziiert dann die zwei anderen Klassen. In der "Startup" Klasse wird zusätzlich ein Logger erzeugt, der die Ausgabe in eine Datei leiten soll. Das funktioniert soweit! Die anderen beiden Klassen haben dann ebenfalls einen Logger, in diesen wird aber nichts mehr definiert, sondern diese sollen die Einstellungen der main()-Methode übernehmen. Machen sie aber nicht.
Ich dachte mir, dass das so abläuft: Ich erstelle in der main()-Methode einen Logger und definiere, wie er die Ausgabe machen soll. Sämtliche davon abhängigen Klassen, die ebenfalls einen Logger erstellen, übernehmen dann diese Einstellungen. Muss ich jetzt in jeder Klasse den Logger, die Logdatei und die Ausgabeformatierung neu einstellen. Wo ist dann der Sinn des Logging-Frameworks?

Kann mich da mal jemand aufklären?

Danke & viele Grüße
Martin
 

mad-din

Bekanntes Mitglied
Jaja,

wer lesen kann hat mehr vom Leben ;) Ich hab bei den ganzen Dokus und Tutorials einen wichtigen Teil immer irgendwie übersehen. Ich hab natürlich den Logger in der main-Klasse so erstellt:

Code:
Logger log = Logger.getLogger("de.package.KlassenName");

und in der Unterklasse dann so erstellt:

Code:
Logger log = Logger.getLogger("de.package.KlassenNameDerUnterKlasse");

Das sind natürlich zwei unterschiedliche Logger, dann kann es ja nicht funktionieren. Jetzt mach ich es so, dass der Logger immer den Namen des packages übergebe, dann funktionierts auch.

Viele Grüße,
Martin
 
M

maki

Gast
ch dachte mir, dass das so abläuft: Ich erstelle in der main()-Methode einen Logger und definiere, wie er die Ausgabe machen soll. Sämtliche davon abhängigen Klassen, die ebenfalls einen Logger erstellen, übernehmen dann diese Einstellungen. Muss ich jetzt in jeder Klasse den Logger, die Logdatei und die Ausgabeformatierung neu einstellen. Wo ist dann der Sinn des Logging-Frameworks?
Verstehe dein Problem nicht ganz.

log4j.logger.meinpacket= debug;

Alle Logger die mit "meinpacket" anfangen, loggen debug.

log4j.logger.meinpacket.MeineOberklasse= warn;
log4j.logger.meinpacket.MeineUnterklasse= info;

meinpacket.MeineUnterklasse loggt info, meinpacket.MeineOberklasse loggt warn.


Jetzt mach ich es so, dass der Logger immer den Namen des packages übergebe, dann funktionierts auch.
Mach das nicht, wäre imho der falsche Weg.
 

mad-din

Bekanntes Mitglied
Hi!

Aber genau das funktioniert bei mir und der Java Logging Api nicht. Nochmal, Es gibt folgende Klassen:

Klasse 1:

Code:
package de.resolution_m.test;

import java.util.logging.*;

public class LoggingMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		Logger log = Logger.getLogger("de.resolution_m.test.LoggingMain");
		Handler fileHandler = new FileHandler("E:/temp/log.txt");
		Formatter simpleFormatter = new SimpleFormatter();
		fileHandler.setFormatter(simpleFormatter);
		log.addHandler(fileHandler);
		
		log.warning("test");
		
		LoggingSubClass lsc = new LoggingSubClass();
		

	}

}

Und die dazugehörige Klasse 'LoggingSubClass':

Code:
package de.resolution_m.test;

import java.util.logging.*;

public class LoggingSubClass {

	public LoggingSubClass() {
		
		Logger log = Logger.getLogger("de.resolution_m.test.LoggingSubClass");
		log.warning("Test der LoggingSubClass");
		
	}
	
}


So, wenn ich jetzt LoggingMain starte, gibts in der log.txt nur einen Eintrag, auf der Konsole werden allerdings zwei Einträge angezeigt. Muss ich in der LoggingSubClass den FileHandler wieder neu setzen? Wenn ja, dann finde ich das Konzept nicht gut, weil ich eigentlich den Logger einmal definieren will und alle anderen - davon abhängigen Klassen - sollen diese Einstellung verwenden. Wenn ich allerdings in beiden Klassen bei Logger.getLogger nur das Paket eingebe, dann funktioniert es.

Viele Grüße,
Martin
 
M

maki

Gast
k.A. ehrlich gesagt, ich nutze nur log4j

Nachtrag: Finde es aber sehr ungewöhnlich, für jedes Objekt einen eigenen Logger zu erstellen, ein statischer für die Klasse sollte doch mehr als reichen?
 

brabenetz

Neues Mitglied
Ich verwende apache commons logging.
Code:
import org.apache.commons.logging.*;
....
private static final Log LOG = LogFactory.getLog(???.class);

Ohne spezielle konfiguration passiert folgendes:

  • * Ist Log4J vorhanden (log4j.jar ), dann wird Log4J verwendet.
    * Ansonsten wenn mindesten JDK 1.4 vorhanden ist, dann wird die Logging-Funktionalität von JDK 1.4 verwendet
    * Ansonsten ( < JDK 1.4 und kein Log4J) wird (glaub ich) System.out.println verwendet (aber wann hat man den Fall schon... ).
In Eclipse erstell ich dafür auch einen art shortcut:
Window --> Preferences --> Java --> Editor --> Templates
Key: loggr
Value:
Code:
/** General Logger for this Class */ 
private static final org.apache.commons.logging.Log LOG = org.apache.commons.logging.LogFactory.getLog(${enclosing_type}.class);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Allgemeine Java Web Service Frage Allgemeines EE 4
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
S allgemeine Frage zu Spring (AOP) Allgemeines EE 2
O Java EE in Netbeans + allgemeine Fragen Allgemeines EE 5
P Allgemeine Vorgehensweise Locking Allgemeines EE 5
B Allgemeine Fragen zu JSP JSF Allgemeines EE 4
pkm Frage zu karaf-Tutorium zum Programmieren von Service und Consumer Allgemeines EE 3
A Frage Umfang JEE Allgemeines EE 5
J Frage zu Dependecy Injection Allgemeines EE 10
pkm Frage zu Get- bzw. Postrequest in JSP. Allgemeines EE 1
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
Tort-E Grundsätzliche Frage -> Lokale Installation Allgemeines EE 2
E Frage zu Wildfly und Hibernate OGM Allgemeines EE 0
S Frage zu Jersey + Hibernate Allgemeines EE 1
Shams Frage zu Dowload von JAVA SDK Allgemeines EE 5
J Frage zur Projektarchitektur Allgemeines EE 2
E Generelle Frage zu CDI mit JBoss AS 7.1.1 and Jave EE 6 Allgemeines EE 4
NoXiD JSF Frage zu Datenstruktur Allgemeines EE 2
S EJB Frage Allgemeines EE 10
2 Frage zu JNDI Allgemeines EE 13
E Entities im JSF/GUI-Layer, Frage zu 3-Layer-Model Allgemeines EE 2
B Wicket, Hibernate, H2 memDB Anfänger Frage Allgemeines EE 2
G Architektur- Frage Allgemeines EE 5
P Frage zu Java EE Design Patterns Allgemeines EE 3
M Frage zu Einloggen/Ausloggen - Features Allgemeines EE 4
M Frage zum Einsatz eines loggers Allgemeines EE 2
T Einstieg JEE: Frage für Frage bis zum Erfolg :-) Allgemeines EE 28
P Allg. Frage Eclipse EE & Xml Allgemeines EE 2
D Frage zum Statefull Session Beans Lebenszyklus Allgemeines EE 3
S JSTL / Spring Webflow Frage Allgemeines EE 2
S jsp include Frage Allgemeines EE 2
B Tomcat Manager - .war Datei hochladen. Einfache Frage Allgemeines EE 5
S Frage zu Taglib und Expression Language Allgemeines EE 5
B J2EE Frage Allgemeines EE 4
F Verständnis-Frage zu den vielen Frameworks Allgemeines EE 17
D Frage zum Verlassen eine JSF-Eingabefeldes Allgemeines EE 6
D Frage zu DataModel, DataModelSelection und Seam Allgemeines EE 3
H Frage zu JSF Allgemeines EE 5
G Generelle Java EE Frage zum Einstieg Allgemeines EE 3
N JSF - Frage zu Managed Beans und DataTable Allgemeines EE 4
S Frage zu JSF und MyFaces Komponenten: Teilbereiche neu laden Allgemeines EE 2
P Eine Frage zum Thema Applikationsaufbau Allgemeines EE 3
F [Hallo] Frage zu Hibernate Mapping und Vererbung Allgemeines EE 3
J Frage zu Jboss Allgemeines EE 7
G Anfänger-Frage: EJB Programmierung bzw. Konfiguration Allgemeines EE 6
M jsf Design Frage Allgemeines EE 3
J jsp:useBean Frage Allgemeines EE 4
megachucky JPA - Query.getResultList() Frage Allgemeines EE 3
M Hibernate Criteria frage Allgemeines EE 2
1 Frage zu Struts und findForward Allgemeines EE 4
D Frage SSL und nicht SSL Allgemeines EE 3
E Warum geht das nicht (EL Frage)? Allgemeines EE 3
T Design/Performance-Frage beim servlet (static oder nicht) Allgemeines EE 35
E forEach Loop EL - Frage Allgemeines EE 2
G Design Frage Allgemeines EE 2
A EJB-Design Frage Allgemeines EE 2
F Frage zur guten Architektur einer WebApp Allgemeines EE 2
thE_29 Allg. Frage zu JSP/Servlets Allgemeines EE 2
flashfactor Frage zu Session-Lebensdauer Allgemeines EE 3
A Frage zu Servlets Allgemeines EE 5
P generelle Frage zum RequestDispatcher Allgemeines EE 2
T Java ServerFaces Anwendung mit XHTML & CSS Allgemeines EE 1
E modulare Java-Anwendung verteilen (Camel) Allgemeines EE 0
B Java Mail und idle() mit zig Emailadressen? Allgemeines EE 59
H JWebUnit Fehler: java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException Allgemeines EE 24
B Java mail API - möchte nur eine gewisse Anzahl von Emails in die Liste holen Allgemeines EE 3
M Rest mit Java 11 Allgemeines EE 6
M java.lang.SecurityException: class "javax.persistence.TupleElement"'s signer information does not match ... Allgemeines EE 1
F Java Programmierer Allgemeines EE 13
R Wie viel DevOps sollte ein Java-Entwickler kennen, der sich in Microservices spezialisiert? Allgemeines EE 5
Dimax JSP Probleme mit Java in JSP Allgemeines EE 21
Dimax JSP Auf button click java methode ausführen.Ist das möglich? Allgemeines EE 6
B Logging (log4j) in JAVA EE application - WildFly Allgemeines EE 15
A Java EE (am Cleint) und websocket Allgemeines EE 8
J Ich kann Java JDK nicht downloaden Allgemeines EE 6
R Aufbau zum Java EE Entwickler - Schulungen Allgemeines EE 0
G Java EE Hosting ? Allgemeines EE 6
P Java EE Videotutorials Allgemeines EE 1
R Java Enterpise entwickeln mit Virtualbox Allgemeines EE 6
A OutOfMemoryError: Java heap space Allgemeines EE 7
I Start Word from Java Allgemeines EE 1
T Java Jersey Interceptor Allgemeines EE 7
R Post Variable in Java Allgemeines EE 8
L JSP Fehlermeldung bei Verwendung von Java-Expression-Language Allgemeines EE 8
K Wie habt ihr Java EE gelernt? Allgemeines EE 11
hjpsoft JSF Lösung einer Aufgabe im "Workshop Java EE7" Allgemeines EE 5
S Welcher Java EE Applikationserver für RESTful Webservice? Allgemeines EE 2
T Java Login Allgemeines EE 1
L Certified Master Java Enterprise Architect Java EE Allgemeines EE 3
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
D Einfaches Java Projekt funktioniert nicht Allgemeines EE 3
W Authentifizierung und Sessions in Java EE7 Allgemeines EE 0
OnDemand Task in Java ee Allgemeines EE 7
OnDemand JSF - java File Verständnisfrage Allgemeines EE 5
OnDemand Deployen ohne .java Files Allgemeines EE 0
E Wie kann ich über einen Suchfeld in Java Server Pages nach Datenbankinhalten suchen? Allgemeines EE 11
V Java EE 7 CDI, annotations und beans Allgemeines EE 1
G Bachelorthesis: Java oder PHP (CMS) Allgemeines EE 7
X Konsolenausgabe einer java klasse in eine jsp umleiten Allgemeines EE 7
S Aufruf eines EJBs aus einer nativen Java-Applikation Allgemeines EE 1

Ähnliche Java Themen

Neue Themen


Oben