Tomcat logging mit Log4j

Status
Nicht offen für weitere Antworten.

robb

Bekanntes Mitglied
Hiho,

Ich habe gerade ein etwas grösseres Projekt unter dem Nagel, in dem mehrere Module von einem Leitrechner verwaltet werden und die Loggingausgaben bisher immer nur lokal auf dem Rechner, auf dem das Modul läuft, geschrieben werden.

Im Netzwerk befinden sich drei Rechner auf denen unterschiedliche Module laufen und ich versuche nun diese Logausgaben auf dem Tomcat der im Hintergrund auf einem Rechner läuft zu bündeln.

Testweise habe ich bisher auf dem Rechner auf dem der Tomcat läuft ein Log-Verzeichnis angelegt und die Logdateien ausgelagert. Solange der Tomcat auf dem selben Rechner läuft bekomme ich keine Probleme und die Logdateien werden korrekt in die angegebenen Textdatei geschrieben.
Nun möchte ich über einen anderen Rechner mit Log4j auf dieses Verzeichnis von Tomcat schreiben nur leider habe ich Probleme bei der Anmeldung auf dem Tomcat.
Ich habe mir ein einfaches Testprogramm geschrieben und eine log4j.xml:

log4j.xml

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
	<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/>
		</layout>
	</appender>
	<root>
		<priority value="debug"></priority>
		<appender-ref ref="stdout"/>
		<appender-ref ref="File">
		</appender-ref>
	</root>
	<appender name="File" class="org.apache.log4j.FileAppender">
		<param name="Append" value="false"></param>
		<param name="File" value="//172.16.6.13/Leitrechner/log/ki.log"></param>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"></param>
		</layout>
	</appender>
</log4j:configuration>

Java Test Datei

Code:
import org.apache.log4j.Logger;

public class LogClass {
	private static org.apache.log4j.Logger log = Logger
			.getLogger(LogClass.class);

	public static void main(String[] args) {

		log.trace("Trace");
		log.debug("Debug");
		log.info("Info");
		log.warn("Warn");
		log.error("Error");
		log.fatal("Fatal");

	}
}

Fehlermeldung:
Code:
log4j:WARN Continuable parsing error 17 and column 127
log4j:WARN The content of element type "log4j:configuration" must match "(renderer*,appender*,(category|logger)*,root?,categoryFactory?)".
log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException: \\172.16.6.13\Leitrechner\log\ki.log (Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort)
	at java.io.FileOutputStream.open(Native Method)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at org.apache.log4j.FileAppender.setFile(FileAppender.java:289)
	at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:163)
	at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
	at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:220)
	at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:150)
	at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:163)
	at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:425)
	at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:394)
	at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:829)
	at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:712)
	at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:618)
	at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:468)
	at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
	at org.apache.log4j.Logger.getLogger(Logger.java:117)
	at LogClass.<clinit>(LogClass.java:5)

Muss ich um diese Logdaten abzusetzen noch Änderungen am Tomcat machen?

Gruss

Robb
 

FArt

Top Contributor
Du willst mit mehreren Tomcats in ein Logfile schreiben?

Mach das nicht, das ist Quatsch.

Dafür gibt es z.B. den SocketAppender.
 
M

maki

Gast
Wie kommst du darauf dass der Filepapender auf Netzlaufwerke schreiben kann?

Mounte/mappe doch das Netzlaufwerk auf ein lokales Verzeichniss/Laufwerk, je nachdem was als OS im einsatz (Linux/Windows) ist.
 

robb

Bekanntes Mitglied
Du willst mit mehreren Tomcats in ein Logfile schreiben?

Nein ich habe nur einen Tomcat und auf dem möchte ich in einem Verzeichnis Log Dateien speichern. Nur sollen diese Logs nicht nur von dem Rechner beschrieben werden können wo der Server auch läuft sondern von allen Rechnern im Netzwerk.

Das mit dem Mapping ist natürlich ne gute Möglichkeit, werde ich mir mal genauer ansehen in wieweit ich das hier realisieren kann.
 
M

maki

Gast
>> Das mit dem Mapping ist natürlich ne gute Möglichkeit, werde ich mir mal genauer ansehen in wieweit ich das hier realisieren kann.

Farts Vorschlag mit den speziellen Appendern scheint mir einfacher & besser umzusetzen zu sein.
 

robb

Bekanntes Mitglied
Hmm, unter den Umständen müsste es doch definitiv reichen, wenn ich die Module die lokal laufen mit den log4j Einstellungen beibehalten und auf anderen Rechnern einen SocketAppender definiere wenn ich mich nicht irre.

Aber ich bin da noch nicht wirklich mit vertraut mit dem Appender muss ich mal weiter recherchieren. Vielen Dank schonmal für die Denkanstösse.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Tomcat 6.0 Log mit java.util.logging - Timestamp aus Logfilenamen entfernen Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
G Tomcat / Catalina - Ausbrechen aus dem Context Netzwerkprogrammierung 2
A Datei erzeugen und auf der Weboberfläche downloaden (Tomcat) Netzwerkprogrammierung 4
A Classpath Tomcat, Start von Programm aus Tomcat Container Netzwerkprogrammierung 1
J PC als Tomcat-Server Netzwerkprogrammierung 13
J Kommunikation von Webanwendungen (auf Tomcat Server) untereinander Netzwerkprogrammierung 8
T Servlets JSP: Tomcat Problem Netzwerkprogrammierung 4
T Tomcat: Analyse der CPU Auslastung Netzwerkprogrammierung 1
M eclipse helios neuen tomcat server erstellen Netzwerkprogrammierung 8
B Tomcat Apache Server Netzwerkprogrammierung 6
T Tomcat zeigt immer nur eine Seite Netzwerkprogrammierung 3
R Client (Swing) Server(Tomcat?) Application Netzwerkprogrammierung 5
E einfache Frage: wie Fehler untersuchen mit Tomcat Netzwerkprogrammierung 5
J Probs bei Verbindung mc4j mit Tomcat 4.1.24 Netzwerkprogrammierung 4
A Alternative zu Tomcat, Axis, WebSphere Netzwerkprogrammierung 6
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
T Jetty Server LOGGING Netzwerkprogrammierung 1
O log4j Appender Frage Netzwerkprogrammierung 6
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
H Log4j SocketAppender Problem Netzwerkprogrammierung 2
B log4j e-mail appender Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben