Tomcat java.util.logging - keine Logs

Sekundentakt

Bekanntes Mitglied
Hallo Gemeinde,

ich will gerade das java.util.logging - Package mit dem Tomcat testen, bevor ich zu log4j übergehe.
Wie hier in einem anderen Thread angekündigt will ich ein umfassendes Feedback zum Einsatz des Logging-Frameworks geben.

Meine Applikation scheint laut catalina-log korrekt deployt zu werden.
Allerdings wird die via FileHandler zu erstellende Log-Datei nicht erstellt.

Ich finde sie auf dem gesamten System nicht.

Probiere ich das Ganze in der Eclipse-IDE aus, läuft es aber so wie es soll.

Apache Tomcat 6.0 - Logging in Tomcat
Die Doku half mir hier auch nicht weiter.

Hier mal ein Code-Schnipsel, welcher bei Instantiierung der App ausgeführt wird:

Java:
		    boolean append = true;
		    FileHandler handler = new FileHandler("testapp.log", append);
		    
		    // Add to the desired logger
		    Logger logger;
		    logger = Logger.getLogger("start");
		    logger.addHandler(handler);
		    logger.setLevel(Level.INFO);
		    logger.log(Level.INFO, "Application is online.");

Jetzt gibt's zwei Möglichkeiten: Entweder wird meine Applikation nicht wirklich gestartet, oder Tomcat unterdrückt da was.

Im Moment fehlt mir hier leider ein Ansatz das zu beheben.
Ideen?

Danke!

EDIT: Was mich wundert, ist das fehlende WEB-INF-Verzeichnis mit allem drum und dran im work-directory. Könnte es sein, dass ich bei der Erstellung der .war was fundamental falsch gemacht habe?
 
Zuletzt bearbeitet:

Sekundentakt

Bekanntes Mitglied
Danke!

... nur um sicherzugehen: Gibt's ne Möglichkeit zu checken, ob ne App online ist? Eine Art ping oder so?

Ich würde jetzt ungerne 10 Klassen umschreiben, weg vom Java-Logger hin zum Juli-Framework...
Oder stehe ich jetzt total aufm Schlauch?

Ich sollte vielleicht dazu sagen, dass das heute mein erster Tomcat-Tag ist.
Zuvor lief das alles out-of-the-box in der Eclipse-Glassfish-IDE.
 
M

maki

Gast
Ich sollte vielleicht dazu sagen, dass das heute mein erster Tomcat-Tag ist.
Was genau hast du denn vor?

Ein Vergleich zwischen den Logging Frameworks gibt es übrigens schon lange, von Leuten die sich damit auch auskennen ;) die Ergebnisse sind auch klar: "Machst du Enterprise, ist log4j dein Freund"
 

Der Müde Joe

Top Contributor
Wenn ich mich noch recht erinnere:
Der Tomcat benutzt inter sein eigenes Logging-Framework: Juli

in SourceCode kuck Embedded.java
Java:
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;

Scheint so zu sein.
Möchte man das Logging umleiten, brauch man die Adapter.
Steht jedenfalls so unter log4j. Und wenn ich in die Adapter reinschaue
hats das neben AvalonLogger auch JdK14Logger und Log4JLogger
Klassen.

Da ich noch nie den util.Logger benutzt habe, kann ich dir nicht helfen.
Beim log4j ist es auf jedefall so.
(Ich benutze immer log4j (bzw sl4j)
 

Sekundentakt

Bekanntes Mitglied
Was genau hast du denn vor?
Ich hab' ne App geschrieben, die mit dem Standard-Java-Logging arbeitet. Die will ich erst mal antesten, weil dort wie gesagt alles über das Logging-Package läuft.

Mit der Zeit will ich zu log4j migrieren, weil alle Welt nur davon spricht, wenn's ums Loggen geht und einige Optionen dort einfach mal Sinn machen.

Es geht bei dem Test natürlich nicht primär ums Logging, ich will erst mal wissen, ob alles arbeitet wie es soll.
 

Sekundentakt

Bekanntes Mitglied
Scheint so zu sein.
Möchte man das Logging umleiten, brauch man die Adapter.
Ich muss noch mal genauer nachhaken: Geht's bei Dir um das Umleiten oder generell um die Erstellung von Logs?

Mein Problem ist erst mal, dass ich überhaupt keine testapp.log-Datei auf meinem System habe.
Liegt das daran, dass ich keinen Adapter nutze?

Was würde denn bei log4j passieren, wenn ich ohne Adapter arbeite? Gar nichts (buchstäblich)?

Wenn ich mit Juli arbeite, bin ich dann an den Tomcat gebunden, oder kann ich dann auch noch Jetty etc. nutzen? Ich gehe jetzt mal davon aus, dass JBoss und alle, die den Tomcat integrieren oder darauf aufbauen, keine Probleme machen werden.

Danke.
 

Der Müde Joe

Top Contributor
Wir reden wahscheinlich ein wenig aneinander vorbei.

Tomcat benutzt intern: juli
intern heisst in seinen eigenen Klassen.

Wobei juli auch nur delegiert. Je nach dem was im CP vorhanden ist, ist dies noch ganz witztig.
Wenn nichts vorhanden ist, benutzt der Tomcat util.Logging.
Per default eigentlich (nach doku) commons.logging.
Added man log4j im CP wird dies genommen (juli adapter muss aber da sein)

Was man selber benutzer möchte ist eigentlich egal. (persönlich slf4j mit log4j dahinter oder auch ohne slf4j)
Ich hab mal ein kuzer Bsp geschustert um ein wenig zu spielen.
(log4j muss eigentlich im CP sein aber man kanns auch ohne laufen lassen, halt mit entsprechnder Execption
wenn das Servlet gestartet wird....auskommentieren...und gut ist...)

Dependences: die tomcat libs (je nach dem mit oder ohne juli adapter)

Nicht gerade perferkt aber zum rumspielen schön.
 

Sekundentakt

Bekanntes Mitglied
Hi Joe,

vielen Dank für den Codeschnipsel.

Kurz zum Verständnis:

Java:
		try {
			Thread.sleep(500000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
Wieso loggst Du die Exception nicht mit?

Btw.: Auf meinem Server wird immer noch keine .log-Datei geschrieben, wie eigentlich durch den FileHandler verlangt. Aber der Grund warum die App nicht lief, war nicht das Logging, sondern das Einbinden einer Servlet-API in die lib meiner Applikation.
Nachdem ich das auf eine Classpath-Einbindung reduziert habe, lief es dann.

Ich werde über das Wochenende entweder log4j einbinden oder slf4j.
Mit letzterem habe ich mich noch gar nicht beschäftigt.

Beste Grüße
 

Der Müde Joe

Top Contributor
>Wieso loggst Du die Exception nicht mit?

Ist nur ein kurzer Hack das der Server oben bleibt...Sprich nach 500s war das mit dem Server ;-)
Auf diese Art natürlich nicht für produktive Zwecke benutztbar.
Thread.sleep wird ne Exception....

>Auf meinem Server wird immer noch keine .log-Datei geschrieben

Und der Server ist?... keine Schreibrechte? Sollte ein file erstellen...(jedenfalls bei mir
klappst (Ubuntu)

>Ich werde über das Wochenende entweder log4j einbinden oder slf4j.

Simple Log Facade 4 Java ist kein logger, sondern nur eine Facade (Abstraktion), welche das unterliegende Logging einer andernen API überlässt. Loggen müsste man dann immer noch mit einem bestimmter Logger. (wahlweise log4j)
 

Sekundentakt

Bekanntes Mitglied
Und der Server ist?... keine Schreibrechte? Sollte ein file erstellen...(jedenfalls bei mir
klappst (Ubuntu)
Gentoo.

Schreibrechte sind vorhanden soweit ich das feststellen kann.
Das Ding wird über's WE noch mal komplett debuggt.

Die Logs erscheinen wenigstens in der catalina.out - leider aber nicht in der von mir definierten Log-Datei.

Deinen EmbeddedTomcat hab ich übrigens nur lokal getestet.

Simple Log Facade 4 Java ist kein logger, sondern nur eine Facade (Abstraktion), welche das unterliegende Logging einer andernen API überlässt. Loggen müsste man dann immer noch mit einem bestimmter Logger. (wahlweise log4j)
Mit andern Worten, wenn 2012 was besseres als log4j existiert, müsste ich mit SLF4J nur einige Config-Änderungen vornehmen und hätte ein anderes Logging-Framework im Hintergrund?

Klingt erstrebenswert.
 

Der Müde Joe

Top Contributor
hmm....da fällt mir grad auch nichts mehr dazu ein...(ausser bei gelegenheit wieder mal ein gentoo zu builden...)

Gehe davon aus das du (wenn du mit Gentoo fährst) die allgemeinen Tücken kennst...
Auf meinen Rechner (Ubuntu) hab ich schlicht aus Eclipse gestartet....Die utilsLogger kamm einfach in den Project-folder...(log4j ist ja nur als ConsoleAppender definiert)

>Mit andern Worten
genau....

Zudem ist slf4j effizienter...

Ums mal mit Spring auszudrücken:
If we could turn back the clock and start Spring now as a new project it would use a different logging dependency. The first choice would probably be the Simple Logging Facade for Java (SLF4J), which is also used by a lot of other tools that people use with Spring inside their
applications.
......
SLF4J is a cleaner dependency and more efficient at runtime than commons-logging because it uses
compile-time bindings instead of runtime discovery of the other logging frameworks it integrates. This
also means that you have to be more explicit about what you want to happen at runtime, and declare it or
configure it accordingly. SLF4J provides bindings to many common logging frameworks, so you can
usually choose one that you already use, and bind to that for configuration and management.
....
SLF4J provides bindings to many common logging frameworks, including JCL, and it also does the
reverse: bridges between other logging frameworks and itself.
...
A common choice might be to bridge Spring to SLF4J, and then provide explicit binding from SLF4J to
Log4J.
 

Sekundentakt

Bekanntes Mitglied
Gehe davon aus das du (wenn du mit Gentoo fährst) die allgemeinen Tücken kennst...
Nein. Das war ein Vorschlag von meinem Provider.
Falls es da aber Tücken gibt, nur raus mit der Sprache.
Ich kann jedenfalls mit dem User, der auch den Tomcat startet, auf der Kommandozeile Dateien verschieben, umschreiben etc. wie ich lustig bin.

Auf meinen Rechner (Ubuntu) hab ich schlicht aus Eclipse gestartet....Die utilsLogger kamm einfach in den Project-folder...(log4j ist ja nur als ConsoleAppender definiert)
So ist es auch bei mir, wenn ich es lokal in meiner Testumgebung starte. Da verwende ich allerdings Glassfish.
Nur auf dem Server wird da was verschluckt - dh. ohne Exception einfach nicht angelegt.
Im Zweifelsfall müsste mir ja wenigstens ne IOException oder so um die Ohren fliegen.

Spring will ja schon fast einen Fanclub gründen, was? :)

EDIT:
Wenn ich hartcodiert einen FileHandler damit beauftrage, eine Log-Datei zu schreiben, muss ich dann etwa ein logging.properties-File erstellen, damit das läuft?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
L Java Version aus Tomcat ermitteln Allgemeine Java-Themen 3
P OpenGts,Java,Ant, tomcat Allgemeine Java-Themen 8
V Java/Tomcat auf Virtual Server Allgemeine Java-Themen 11
M Java, PHP und Tomcat Allgemeine Java-Themen 4
M Java Webserver - Tomcat alleine oder zusammen mit Apache? Allgemeine Java-Themen 3
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
M tomcat probleme Allgemeine Java-Themen 1
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
W JSP / Tomcat / Filter / Preprocessing Allgemeine Java-Themen 7
G Embedded Tomcat (war vs. jar) Allgemeine Java-Themen 6
R Tomcat startet nicht Allgemeine Java-Themen 1
X Tomcat checkParachute Allgemeine Java-Themen 1
X Encoding in Tomcat Allgemeine Java-Themen 2
X Performance für Tomcat / Apache optimieren Allgemeine Java-Themen 2
N Schulung zu Tomcat/JSP/Struts gesucht Allgemeine Java-Themen 0
P Tomcat Deploy path Allgemeine Java-Themen 2
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
HarleyDavidson Tomcat VS Windows Scheduled Task Allgemeine Java-Themen 4
J WindowsServer (12) und Tomcat 7 Allgemeine Java-Themen 14
D Tomcat/Derby Webapp Allgemeine Java-Themen 7
2 JPA und Tomcat Allgemeine Java-Themen 4
S Mac Adresse aus Tomcat Allgemeine Java-Themen 7
H Tomcat: JVM Crash ntdll.dll Allgemeine Java-Themen 2
I Problem mit Tomcat der URL Allgemeine Java-Themen 5
Mr.Isaaaac Tomcat Proxy Einstellungen, hä? Allgemeine Java-Themen 3
T Wie Hibernate im Tomcat installieren? Allgemeine Java-Themen 2
E Einfaches Problem mit Tomcat Allgemeine Java-Themen 18
E welche standalone Version von Tomcat benutzen? Allgemeine Java-Themen 6
S Zwei Anwendungen unter Tomcat Allgemeine Java-Themen 4
S "Guessed User name" bei Tomcat belegen Allgemeine Java-Themen 2
G Servlet über apache Tomcat ansprechen Allgemeine Java-Themen 6
L Tomcat cache Allgemeine Java-Themen 10
L Tomcat erkennt Share nicht Allgemeine Java-Themen 6
H Tomcat VM out of memory Allgemeine Java-Themen 7
M TomCat Login Allgemeine Java-Themen 19
F Was tun bei der Exception? SW: hbernate, tomcat, postgresql Allgemeine Java-Themen 4
I Tomcat, Lucene, Probleme Allgemeine Java-Themen 4
Y PDF Report mit Tomcat Heap Space Problem Allgemeine Java-Themen 9
J Suse + Tomcat + Sysdeo Plugin: Tomcat als user starten Allgemeine Java-Themen 2
franzi Tomcat acceptCount Allgemeine Java-Themen 1
G Tomcat ResourceBundle Allgemeine Java-Themen 7
P Classpath, Tomcat und Eclipse Allgemeine Java-Themen 4
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18

Ähnliche Java Themen

Neue Themen


Oben