Ich fange an, ein Eclipse Plugin zu entwickeln (technisch gesehen ein OSGi Plugin) und eines der ersten Probleme ist, dass ich die commons-logging Ausgabe nicht so steuern kann Normalerweise würde ich es tun.Einloggen Eclipse/OSGi Plugins
Ich habe das commons-logging-Paket in die Abhängigkeiten des Plugins aufgenommen, und tatsächlich, wenn ich etwas protokolliere (bei INFO oder höherem Schweregrad), wird es in der Konsole protokolliert. Ich kann jedoch nicht auf einer niedrigeren Ebene loggen (wie DEBUG oder TRACE).
Ich habe eine log4j.properties-Datei angegeben, und zwar im Klassenpfad (für die Laufzeit, genau wie das Commons-Logging-Paket), aber keine der Einstellungen in dieser Eigenschaftendatei hat Auswirkungen auf das Verhalten der Logger.
Hier ist die Datei log4j.properties:
# Log4j Logging levels, in order of decreasing importance are:
# FATAL, ERROR, WARN, INFO, DEBUG, TRACE
#
# Root logger option
log4j.rootLogger=ERROR,stdout
#,LOGFILE
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %r (%l) %t%n - %m%n
Was muss ich so tun müssen, dass ich tatsächlich den Ausgang des Loggers steuern kann?
Hier sind einige Beispiele für Ausgabenachrichten, in der Hoffnung, dass die Formatierung mit einem Standard für java.util.logging zusammenfallen kann oder andere jemand Hinweise geben:
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
SEVERE: fatal_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
WARNING: warn_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
INFO: info_message
Update:
ich habe jetzt verschiedene Kombinationen ausprobiert:
- org.osgi.service.log.LogService et al.
- slf4j
- Log4J
- Commons-logging
- java.util.logging
und ich kann nur erhalten DEBUG oder untere Ebene Nachrichten angezeigt werden, wenn ich OSGi leite manuell aus einer Eingabeaufforderung (die unpraktisch für das, was ich entwickle). Außerdem kann ich über verschiedene Eigenschaftendateien keine andere Protokollierungskonfiguration durchführen. Alles, was ich in dieser Hinsicht versuche, scheint von einer Eclipse-Einstellung übersteuert zu werden.
Ich habe auch versucht, verschiedene Konfigurationsdateien für die oben genannten Bibliotheken an zahlreichen Stellen, einschließlich als Plug-in-Fragmente an ihre jeweiligen Bibliotheken angehängt, wie vorgeschlagen here, und immer noch das gleiche Ergebnis passiert.
Ich habe eine benutzerdefinierte LogListener implementiert und verfolgt den gesamten Pfad einer Protokollmeldung (wie auch ich weiß, wie jedenfalls) mit System.out.println der und Debug-Meldungen sind vorhanden rechts, bis sie Ausgabe von der zugrunde liegenden Protokollierungs-API, die ich verwende, dann verschwinden sie.
@rcreswick Sie bitte lassen Sie mich wissen, wo haben Sie haben die Datei log4j.properties im Plugin abgelegt – VamsiKrishna