sl4j/logback unter weblogic
Ich versuche zu konfigurieren sl4j/logback unter Weblogic12.
Ich bereitstellen der ear-Datei, die war-Datei, die WEB-INF\classes\logback.xml
Hier ist die config:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Meinen code anmelden :
private static final Logger logger = LoggerFactory.getLogger(FrontEndServlet.class);
//......
logger.info("info test");
logger.debug("debug test");
logger.error("error test");
Was sehe ich in der standart Ausgabe ist :
ьрщ 14, 2012 5:09:29 PM .....FrontEndServlet doPost
INFO: info test
ьрщ 14, 2012 5:09:29 PM .....FrontEndServlet doPost
SEVERE: error test
So, wie es aussieht, config-Datei wird nicht aufgegriffen.
Was mache ich falsch?
InformationsquelleAutor mik | 2012-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem wird hier diskutiert im detail: https://stagingthinking.wordpress.com/2012/06/02/annoying-slf4j-problem-in-weblogic-server-12c/
Den genauen Paket, das Sie benötigen, um auf der prefer-application-packages Mechanismus ist
org.slf4j
wie diese:InformationsquelleAutor Kristof Jozsa
Hinweis: Auch diese Frage ist bereits beantwortet, ich möchte hinzufügen, dass, sollten Sie auch hinzufügen
prefer-application-resources
.Antwort: Fügen Sie eine Datei namens META-INF/weblogic-application.xml an Ihr Ohr, die sowohl
prefer-application-packages
undprefer-application-resources
!InformationsquelleAutor Matthias B
War das problem - sl4j nicht abholen logback und verwendet Weblogic - slf4j-jdk-logging statt. Kann behoben werden mit Weblogic config weblogic-application.xml, option prefer-application-packages
InformationsquelleAutor mik
Alternativ oder wenn Sie Probleme haben mit mehr als nur slf4j, Sie könnte verwenden
Statt
Quelle: Oracle
InformationsquelleAutor otonglet
Umgebung: Weblogic 12.2.1
Logging-Framework : Slf4j und Logback
Voraussetzung : Log in eine Datei meiner Wahl (pro Anwendung) sowie Weblogic server-Protokolle
Mithilfe der
<prefer-application-packages/>
oder<prefer-web-inf-classes>
im weblogic.xml nicht die Anforderung erfüllen. In meinen Tests mit der ein oder anderen tags (Sie können nicht beide verwenden) wird Ergebnis in der Anwendung logback.xml abgeholt und Protokollierung gehen Sie zu der Datei, welche in logback.xml. Allerdings, das typische STDOUT defintion mit logback ist ConsoleAppender nicht anmelden, um die server-logs.Entfernen Sie die folgenden von weblogic.xml
Folge mit der gebündelten SLF4j-binding, die in Weblogic 12.2.1, ist Java-Util-logging. In diesem Fall melden Sie Aussagen gehen an der server-logs und nicht um die Datei definition in der Anwendungsebene logback.xml. In meiner Forschung, es scheint, in einer Zeit, einige version von Weblogic 12 erlaubt die interne SLF4j gebunden zu sein, Log4j, wurde aber entfernt, in einem der minor-releases. Dies war mein Fall; ich hatte nicht die option zu aktivieren Log4j als die primären logging Framework Weblogic über die Admin-Konsole. Ich bin mir ziemlich sicher, dass dies nicht hätte mir geholfen, aber ich wollte zu beachten, da mehrere Dokumente, die ich Lesen angegeben, welche zur Verfügung stehen würde.
Nach viel Forschung und Bekämpfung der Konfiguration mit weblogic.xml die Konfiguration von POM (AUSSCHLÜSSE etc.) und versuchen mit verschiedenen Bindungen und Brücken, ich war nicht in der Lage zu erreichen, die logging-Konfiguration, die ich wollte. Es scheint, dass Weblogic ist slf4j gebunden ist, um Java-Programm-Anmeldung, für besser oder schlechter. Wenn Sie Ihre eigene Implementierung von slf4j und Bindung (in meinem Fall Logback), es gibt keine Möglichkeit, die ich finden konnte, um route-Nachrichten, Weblogic server-Protokolle über die Konfiguration. Es kann nur eine Bindung, slf4j, und obwohl viele Rahmenbedingungen geroutet werden können, eine Bindung, (ich fand diese nützlichen Diagramm) Weblogic 12.2.1 beschäftigt ausschließlich Java-util-logging-Bindung, es gibt keinen Weg, um (auf der Anwendungs-Konfiguration-Ebene) Draht Weblogic verwenden, die Logback-Bindung, die Sie zur Anmeldung an die server-logs. Vielleicht gibt es einen Weg, um zu verwenden log4j und Brücken, um dies zu erreichen, aber das ist für mich völlig zu viel aufblasen und Konfiguration, zu erreichen ein einfaches logging-Aufgabe.
Aufgeben zu versuchen, um diese zu erobern, indem Sie Konfiguration, habe ich beschlossen, einfach mal meine eigenen logback Appen, übersetzt eine Anmeldung bei JUL Protokollierung der Veranstaltung. Ich ersetzt die standard-STDOUT-definition, die man in vielen Logback Beispiele mit meinen eigene Implementierung Logback ist AppenderBase. An dieser Stelle kann ich nun melden Sie pro Anwendung Protokollierung von Konfigurations-und log auch auf dem Weblogic-Server-Protokoll.
Relevanten POM Abhängigkeiten:
weblogic.xml (Beachten Sie hier, dass Hibernate kommt mit JbossLogging die Brücke zu slf4j automatisch)
Logback AppenderBase Umsetzung
}
Logback.xml Konfiguration
Hoffentlich kann ich speichern, anderen etwas von dem Schmerz, dass ich ging durch versuchen, diese so zu arbeiten, wie ich wollte.
Hi. logback.xml geht in src/main/resources. Sobald Sie bauen den Krieg, erkunden und überprüfen, dass die logback.xml endet in /WEB-INF/classes. Wenn der weblogic-ist immer noch zu ignorieren, die container-descriptor und prefer-application-packages können nicht syntaktisch korrekt ist. Stellen Sie sicher, dass Sie die richtige wls-namespace definiert ist (wie in dem Beispiel, das ich gepostet). Sie können überprüfen, dass weblogic.xml gesehen von weblogic, indem Sie einige Müll-strings und die Bereitstellung des Krieges. Weblogic ersticken, wenn seine kann nicht analysieren weblogic.xml. Viel Glück! PM mich, wenn Sie weitere Hilfe benötigen.
Auch im Auge behalten, wenn Konsole ist die Protokollierung, das bedeutet, dass der weblogic-interner logging (JUL) ist ansteckend, Ihre Aussagen ODER die internen Weblogic logback verwendet wird. Sobald Sie Ihre app logback arbeiten, sollten Sie KEINE der Anweisungen in der Konsole und nur in der Datei definieren Sie in logback.xml. Dann können Sie hinzufügen, den weblogic-appender und Klasse I oben zeigen log auf der Konsole.
InformationsquelleAutor Hodglem