Log4J - logt nicht

Permafr0st

Mitglied
moin,
habe ein Problem mit Log4j und steh damit zielmich im Wald. Wir nutzen Log4J üblicherweise für Java Apps, die auf Apache Cocoon aufsetzen, das ganze natürlich auf dem Tomcat.

Nun habe ich da eine JSP App. Unter WEB-INF/lib habe ich eine Java Klasse, die u.a. auch das Logging besorgen soll. Die Klasse selbst soll loggen können, die Loggingmethode soll man auch von aussen per Instanz nutzen können.

Unter WEB-INF/lib liegt log4j-1.2.14.jar. Unter WEB-INF/ iegt die log4j.xml, applicationContext.xml und web.xml. Meine Javaklasse läuft, bis auf das Logging, wunderprächtig.

Die Logfiles, die in der log4j.xml angegeben sind, werden beim Start von tomcat selbsttätig angelegt in allen 3 gewünschten Loglevels. Insofern vermute ich, daß meine log4j.xml so nicht ganz falsch ist.

Wir hatten sogar den Fall, daß meine App zwar gelogt hat, aber in ganz andere Dateien als vorgesehen. Ich hatte unter WEB-INF/lib eine Klasse liegen, die dort überhaupt nichts verloren hatte, aber ihr eigenes Logging mitgebracht hatte. Ich habe diese Lib entfernt, naja jetzt logt er gar nicht mehr.

Das Logging in meiner Klasse geschieht wie folgt (Namen von Klassen, Methoden musste ich wegen Geheimhaltung ändern):


Java:
import org.apache.commons.logging.Log;  // dazu zählt wohl auch log4j ..?
...
String logprefix =  "";  // logprefix wird vor dem Logging u.a. mit Usernamen versehen...

public class myApplication extends AbstractAction { 		
...
	// Logging
	Log logger = this.getLogger();

	public String myApplicationLog(String level, String logmsg)		{
		if (level.toLowerCase().equals("info"))	{
			if (logger.isInfoEnabled()) 
				logger.info(logprefix + logmsg);
			else
				return "logger: 'info' is not enabled";
		}
		if (level.toLowerCase().equals("warn"))	{
			if (logger.isWarnEnabled())
				logger.warn(logprefix + logmsg);
			else
				return "logger: 'warn' is not enabled";
		}
		if (level.toLowerCase().equals("error"))	{
			if (logger.isErrorEnabled())
				logger.error(logprefix + logmsg);
			else
				return "logger: 'error' is not enabled";
		}		
		return "logger: loglevel is enabled";
	}
}

Wobei myApplicationLog() vorher void war, ich habe sie eigens zum Debuggen String returnen lassen. Die angegebenen Klassen von apache.commons.* liegen freilich in der WEB-INF/lib

Ich habe die einzelnen Levels isInfoEnabled(), isWarnEnabled(), isErrorEnebled() mal überprüft - es ist alles enabled. Meine definierten Logfiles werden wie gesagt beschrieben. Allerdings nur mit Start- und sonstigen allgemeinen Meldungen des Tomcat, nicht mit denen wofür sie gedacht waren. Es wäre auch schön, wenn ich den ganzen 'Müll' von Tomcat aus meinen Logfiles heraushalten könnte, die schreibt er ja ohnehin in catalina.out usw.

Woran kann es liegen, wo soll ich ansetzen, nachschauen?

Eine andere Strategie wäre, die Struktur der "fremden" Klasse, die ja durchaus gelogt hatte, zu analysieren und meine Klasse daraufhin nachzubauen, wie wäre das?

Danke, Gruß
 

Permafr0st

Mitglied
meine web.xml:

[XML]<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Licensed to the Apache blah blah... -->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
</web-app>[/XML]

log4j.xml (Namen geändert)
[XML]
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Licensed to the Apache blah blah... -->
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-5p %t - %m%n" />
</layout>
</appender>

<appender name="infoApp" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="info"/>
<param name="File" value="${de.myapp.log4j.infofile}" />
<!-- param name="File" value="/var/log/myapp/myapp_info.log" / -->
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-5p %t - %m%n" />
</layout>
</appender>

<appender name="warnApp" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="warn"/>
<param name="File" value="${de.myapp.log4j.warnfile}" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-5p %t %c - %m%n" />
</layout>
</appender>

<appender name="errorApp" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="error"/>
<!-- param name="File" value="${de.myapp.log4j.errorfile}" / -->
<param name="File" value="/var/log/myapp/myapp_error.log" />

<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-5p %t %c - %m%n" />
</layout>
</appender>

<logger name="de.myapp.ChannelParameterMapper ">
<level value="WARN" />
</logger>
<root>
<priority value="${de.myapp.ariadne.log4j.loglevel}"/>
<!--appender-ref ref="stdout"/-->
<appender-ref ref="infoApp"/>
<appender-ref ref="warnApp"/>
<appender-ref ref="errorApp"/>
</root>
</log4j:configuration>
[/XML]
 
M

maki

Gast
Der Pfad für die web.xml ist fest (WEB-INF), der für die applicationContext.xml ist konfigurierbar, steht aber auch in der Spring Doku ;)
 

Permafr0st

Mitglied
hmm. ich habe mir die applicationContext.xml mal angesehen - dort konfiguriert man offenbar die Log4j ? wie man sieht ist "/WEB-INF/log4j.xml" eingetragen - und so ists auch bei allen anderen Webapps die hier laufen. Mit dem Unterschied daß die alle anstandslos loggen, nur meine nicht :bahnhof:

applicationContext.xml
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache blablah..-->
<!-- @version $Id: applicationContext.xml 561608 2007-08-01 00:33:12Z vgritsenko $ -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:configurator="http://cocoon.apache.org/schema/configurator"
xmlns:avalon="http://cocoon.apache.org/schema/avalon"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
Index of /schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
Index of /schema/configurator http://cocoon.apache.org/schema/configurator/cocoon-configurator-1.0.1.xsd
Index of /schema/avalon http://cocoon.apache.org/schema/avalon/cocoon-avalon-1.0.xsd">
<!-- Activate Cocoon Spring Configurator -->
<configurator:settings runningMode="prod" extractBlockResources="true" readFromClasspath="true" readFromGlobalLocation="true"/>

<!-- Configure Log4j -->
<bean name="org.apache.cocoon.spring.configurator.log4j"
class="org.apache.cocoon.spring.configurator.log4j.Log4JConfigurator"
scope="singleton">
<property name="settings" ref="org.apache.cocoon.configuration.Settings"/>
<property name="resource" value="/WEB-INF/log4j.xml"/>
</bean>

<!-- Activate Avalon Bridge -->
<avalon:bridge/>
</beans>[/XML]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S log4j, root logger logt nur FATAL? Allgemeine Java-Themen 9
M log4j Problem mit jlink Allgemeine Java-Themen 19
T Log4j integrieren, wie? Allgemeine Java-Themen 7
T Logging mit org.apache.logging.log4j Allgemeine Java-Themen 1
M Schutz vor Log4J Allgemeine Java-Themen 2
W Sicherheitslücke in Log4j Allgemeine Java-Themen 66
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
MiMa mit Log4j einzeln Protokollieren Allgemeine Java-Themen 7
A JWS application - log4j wie configurieren Allgemeine Java-Themen 1
A Log4j configurieren Allgemeine Java-Themen 1
L Applet Wo loggt log4j bei Applets Allgemeine Java-Themen 0
T Log4J - Deaktivierung für einzelne Klassen Allgemeine Java-Themen 7
D Log4J RollingFileAppender rolliert nicht Allgemeine Java-Themen 3
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
O log4j - Verständnisfrage Allgemeine Java-Themen 1
O [log4J] Unterschied SocketServer <-> SimpleSocketServer Allgemeine Java-Themen 0
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
T [log4j] Wie nutzt man log4j.properties? Allgemeine Java-Themen 7
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
O log4j - eigenes Log für einzelne Klasse Allgemeine Java-Themen 5
J log4j ohne propertiedatei Allgemeine Java-Themen 4
H [Logback || log4j] Wie richtig loggen / Log Instanzen verwalten Allgemeine Java-Themen 2
A Threads Log4J Logger wird "überschrieben" Allgemeine Java-Themen 3
N Log4J PatternLayout Allgemeine Java-Themen 2
S Frage zu Format Modifiers in Log4j Allgemeine Java-Themen 11
P Wie bei log4j den Dateipfad der Logdatei zur Laufzeit ändern? Allgemeine Java-Themen 3
C Grundsätzliches zu log4j Allgemeine Java-Themen 8
C Log4J mit 2 Appender Allgemeine Java-Themen 4
reibi log4j - Bestes Konzept Allgemeine Java-Themen 10
F System.out.println mit log4j ersetzen Allgemeine Java-Themen 10
F Log4J - Detaillierte Logeinträge Allgemeine Java-Themen 2
F log4j DailyRollingFileAppender Allgemeine Java-Themen 2
T Wahrscheinlich Problem mit log4j.properties Allgemeine Java-Themen 19
B Log4J und Categories Allgemeine Java-Themen 4
L log4j layout Allgemeine Java-Themen 3
S Log4j und SLF4J - Laufzeitänderungen Allgemeine Java-Themen 11
E Eclipse Axis, Jena, HTTPClient - log4j Meldungen deaktivieren? Allgemeine Java-Themen 6
ruutaiokwu log4j appender in log4j.xml in java referenzieren... Allgemeine Java-Themen 6
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
H log4j & taskname Allgemeine Java-Themen 3
C log4j.properties wird nicht verwendet?? Allgemeine Java-Themen 3
S log4j, Datum in Fileappendern formatieren Allgemeine Java-Themen 4
G Log4J Verzeichnis der Log-Datei konfigurieren Allgemeine Java-Themen 8
K log4j-Warnung mit Quartz Allgemeine Java-Themen 3
G log4j package filter Allgemeine Java-Themen 10
G log4j - Behandlung nicht explizit abgefangener Exceptions Allgemeine Java-Themen 5
S log4j - doppeltes Logging Allgemeine Java-Themen 4
R log4j - Ausgabe der Logs Allgemeine Java-Themen 3
S log4j Logging über mehrere Klassen Allgemeine Java-Themen 13
MQue log4j mit hibernate Allgemeine Java-Themen 3
G Log4J - Logs älter als 3 Tage löschen Allgemeine Java-Themen 5
S log4j.dtd nicht in jar gefunden Allgemeine Java-Themen 7
H log4j - täglichen DailyRollingFileAppender Allgemeine Java-Themen 2
H Mit Log4j erzeugte Datei einlesen Allgemeine Java-Themen 2
hdi log4j in eine Datei Allgemeine Java-Themen 21
S Log4J DailyRollingFileAppender Allgemeine Java-Themen 4
M Log4J funktioniert nicht unter anderem Benutzer Allgemeine Java-Themen 5
B Log4j --- Welchen Appender, wie konfigurieren Allgemeine Java-Themen 3
F Logger in mehrere Dateien mit log4J Allgemeine Java-Themen 4
T Log4J: Bei Programmstart immer eine neue LogDatei erzeugen Allgemeine Java-Themen 9
ARadauer log4j DailyRollingFileAppender Allgemeine Java-Themen 4
B log4j löscht meine Logdateien Allgemeine Java-Themen 2
V Feinheitsfragen zu log4j Allgemeine Java-Themen 21
R log4j Allgemeine Java-Themen 5
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
K log4j Anzeigeformat Allgemeine Java-Themen 2
O Konkurrierender Zugriff auf Log-Datei mit Log4J Allgemeine Java-Themen 11
A log4j 1.3 und ändern der log Konfiguration zur Laufzeit Allgemeine Java-Themen 4
J Alte Log Files löschen mit log4j Allgemeine Java-Themen 3
U Log4j - gleichzeitige geöffnete File handles Allgemeine Java-Themen 2
P log4j Allgemeine Java-Themen 21
P log4j Allgemeine Java-Themen 9
B log4j FileAppender Dateizugriff Allgemeine Java-Themen 7
G log4j Allgemeine Java-Themen 13
J Log4j / commons-logging Allgemeine Java-Themen 3
V log4j Problem . Allgemeine Java-Themen 8
D Log4j-HTMLLayout Allgemeine Java-Themen 2
G Log4j - Log-File Allgemeine Java-Themen 6
Q [log4j] nur ein Mal konfigurieren Allgemeine Java-Themen 2
Y log4J XML Konfiguration Allgemeine Java-Themen 8
K Logging mit Log4j Allgemeine Java-Themen 2
P log4j: Übersicht der Properties Allgemeine Java-Themen 5
G eigener logger mittels classe (dynamische logfilename) log4j Allgemeine Java-Themen 15
K log4j - eigene Info-Ausgaben Allgemeine Java-Themen 5
K log4j - Fehlermeldung Allgemeine Java-Themen 2
J stackTrace mit log4j loggen Allgemeine Java-Themen 9
F log4j XML-Syntax Allgemeine Java-Themen 4
F log4j loggen in mehrere Dateien Allgemeine Java-Themen 4
S Logging mit log4j Allgemeine Java-Themen 17
S Log4J mit 2 Appender, einer soll nur INFO loggen Allgemeine Java-Themen 3
Q Ant und org.apache.log4j.xml.DOMConfigurator Problem Allgemeine Java-Themen 2
S log4j Allgemeine Java-Themen 2
V log4j.properties wird in der jar Datei nicht gefunden? Allgemeine Java-Themen 2
F [Log4J] Logdatei mit einem schlag über 200MB! Allgemeine Java-Themen 4
M Log4J - Protokollierung auf die GUI zaubern! Allgemeine Java-Themen 11
S log4j Protokoll in XML Allgemeine Java-Themen 11
B Wohin mit log4j.properties Allgemeine Java-Themen 2
M Rat gesucht: Logging (log4J oder java.util.logging oder .) Allgemeine Java-Themen 5

Ähnliche Java Themen


Oben