Hallo,
ich versuche mit log4j den taskname auszugeben. Das funktioniert im Prinzip auch, wenn ich allerdings den Taskname bei Konstruktor des Tasks, oder mit der Methode setName(), selber bestimme gibt log4j trotzdem den Defaultnamen des Tasks aus.
Hier mein Testprogramm zu Ausgabe:
Wie man sieht gebe ich zuerst bei Konstruktor des Threads einen Namen an. Anschließend gebe ich den Tasknamen aus.
Das ist mein Propertiesfile:
und hier die Ausgabe auf der Konsole:
18:23:20,062 CET AWT-EventQueue-0 LogTaskname INFO AWT-Event
18:23:20,078 CET AWT-EventQueue-0 LogTaskname INFO AWT
Ich hätte erwartet, und gewünscht, dass nach der Ausgabe der Zeit mein Taskname erscheint, also erst "AWT-Event" und bei der zweiten Ausgabe "AWT".
Kann mir jemand weiterhelfen warum das nicht funktioniert?
Schönen Dank
Rainer
ich versuche mit log4j den taskname auszugeben. Das funktioniert im Prinzip auch, wenn ich allerdings den Taskname bei Konstruktor des Tasks, oder mit der Methode setName(), selber bestimme gibt log4j trotzdem den Defaultnamen des Tasks aus.
Hier mein Testprogramm zu Ausgabe:
Java:
package rh.Test;
import java.awt.EventQueue;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class LogTaskname {
private static final Logger LOGGER = Logger.getLogger(LogTaskname.class);
static {
PropertyConfigurator.configureAndWatch(System.getProperty("user.dir")
+ System.getProperty("file.separator")
+ "log4j.properties",
1 * 1000);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Thread("AWT-Event") {
@Override
public void run() {
LOGGER.info(getName());
setName("AWT");
LOGGER.info(getName());
}
});
}
}
Das ist mein Propertiesfile:
Java:
log4j.rootLogger=WARN, CONSOLE
#log4j.rootLogger=WARN, CONSOLE, FILE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d{HH:mm:ss,SSS z} %t %c{1} %p %m %n
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.file=log.txt
log4j.appender.FILE.append=false
log4j.appender.FILE.threshold=info
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern = %d{dd.MM.yyyy HH:mm:ss,SSS z} %t %c %p %l %m %n
log4j.logger.rh=TRACE
log4j.debug=true
log4j.debug=false
und hier die Ausgabe auf der Konsole:
18:23:20,062 CET AWT-EventQueue-0 LogTaskname INFO AWT-Event
18:23:20,078 CET AWT-EventQueue-0 LogTaskname INFO AWT
Ich hätte erwartet, und gewünscht, dass nach der Ausgabe der Zeit mein Taskname erscheint, also erst "AWT-Event" und bei der zweiten Ausgabe "AWT".
Kann mir jemand weiterhelfen warum das nicht funktioniert?
Schönen Dank
Rainer