1. Verstehen Sie
SLF4J (einfache Protokollierungsfassade für Java) stellt eine einfache Protokollfassade für Java dar, und ein grundlegenderer Punkt ist eine Schnittstelle. Durch das Importieren der Informationen im Programm in das Protokollsystem und die Aufzeichnung der Aufzeichnung kann die Entkopplung zwischen dem Programm und dem Protokollsystem erreicht werden.
Die Log -Fassadenschnittstelle selbst verfügt normalerweise nicht über die tatsächliche Log -Ausgangsfunktion. Es muss noch die spezifische Log -Framework -API unten aufrufen, dh sie muss tatsächlich in Kombination mit dem spezifischen Protokoll -Framework verwendet werden. Da es viele spezifische Protokoll -Frameworks gibt und größtenteils nicht kompatibel miteinander kompatibel ist, ist möglicherweise eine entsprechende Brücke, sofern die Schnittstelle der Protokollfassade mit einem beliebigen Protokoll -Framework kombiniert wird, so wie die Kombination zwischen JDBC und verschiedenen Datenbanken einen entsprechenden JDBC -Treiber erfordert.
1. Blockfassade (Fassade)
1.Slf4j (empfohlen)
2.Commons-Logging
2. SLF4J Verbindungsspezifische Protokolle
Beim Anschließen von SLF4J und anderen Protokollrahmen wird in der Mitte eine桥接器benötigt. Einige Protokollierungsrahmen selbst verwenden die SLF4J -API, sodass sie keine Brücken verwenden müssen.
Der Logback ist eine verbesserte Version von LOG4J, und die SLF4J -API wird direkt intern verwendet, sodass es keine Brücke gibt. (Logback und SLF4J sollen vom selben Autor stammen)
1.Slf4j-api.jar> slf4j-log4j12.jar Bridge> log4j.jar
2.Slf4j-api.jar> logback-core.jar, logback-classic.jar
3.Slf4j-api.jar> Slf4j-Simple.jar
4.Slf4j-api.jar> log4j-Slf4j-IMPL-2.8.2.jar> org.apache.logging.log4j: log4j-api: 2,8.2, org.apache.logging.log4j: log4j-core: 2.8.2, org.apache log4j2)
2. Verwenden Sie SLF4J+LOG4J2
log4j2.xml
Setzen Sie es in das Ressourcenverzeichnis ein
<xml Version = "1.0" coding = "utf-8"?> <! Wenn die Priorität warn festgelegt wird, können die vier Stufen von Protokollen, tödlich, fehlerhaft und gewarnt, normal ausgeben. Dies bedeutet, dass Protokolle von log4j2 nicht aufgezeichnet werden. -> <!-Status: Wird verwendet, um die Druckprotokollebene von LOG4J selbst anzugeben. MonitorInterval: Geben Sie die Überwachungsintervallzeit für log4j automatisch neu konfiguriert-> <Konfigurationsstatus = "info" monitorInterval = "30"> <!-Setzen Sie die Eigenschaften selbst und greifen Sie dann über $ {}-> <Eigenschaften> <Eigenschaftsname = "log_home"> $ {{web: rootdir}/logs </logs zu. Konsolekonsole geben Sie das Ausgabebild und das Filterebene als Info an-> <Konsolenname = "Konsole" target = "system_out"> <!-Thresholdfilter Gibt die niedrigste Ausgabeebene von logarithmischen Nachrichten an-> <Thresholdfilter Level = "All" OnMatch = "Accept" OnMisch = "Deny/> <mustlayout =" ientlayout = "" ientSsssss. %-5 Level %Class {36} %l %M- %MSG %xex %n "/> </console> <!-Appender 2. Ausgabe an die scroll-gespeicherte Datei, die Bedingung, die die Speicherprotokolldatei auslöst, ist, dass die Protokolldatei größer als 3KB ist und nur die neuesten 10 Logs gespeichert sind. <ThresholdFilter Level = "All" OnMatch = "Accept" onMisMatch = "Deny"/> <musterlayout charset = "utf-8" muster = " %d {yyyyy.mm.dd 'at' Hh: mm: ss z} %-LEVEL-Klasse {36} %l %m- %mm %xsg × %× %× %× %× %× %× %× %× %× %× %× %× %× %msg ·g xsg ·g xsg ·g xsg ·g ·g %·g %· prox %· appl. Scroll gespeicherte Datei, die Bedingung, die die Speicherprotokolldatei auslöst, lautet, dass die Protokolldatei größer als 3 KB ist und nur die neuesten 10 Protokolle gespeichert werden-> <rollingFile name = "debuglog" Dateiname = "$ {log_home} /debug.log" filepattern = "$ {log_home} /debug-%iGring". OnMatch = "Akzeptieren" onMisMatch = "Deny"/> <musterlayout charset = "utf-8" muster = "[%-5LEVEL] [%d {yyyy-mm-dd HH: mm: ss}] [%f:%l]-%m%’/> <größe basierte MAX Ingregeringpolicy size DefauLtrolloverStrategy kann das maximale Archiv einschränken, nachdem die Größe die Größe in sizebasierten TRIGGERSPOLICY-> <defaUltrolloverstrategy max = "10"/> </rollingfile> <!-Appender 4. Export auf die scroll-gespeicherte Datei, die Bedingung Die Save-Log-Datei auslöst, ist das erste Protokollereignis pro Minute. ERROR logs are generated by minutes --> <RollingFile name="errorLog" fileName="${LOG_HOME}/error.log" filePattern="${log.path}/error-%d{yyyy-MM-dd_HH-mm}.log"> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <Musterlayout charset = "utf-8" muster = "[%-5LEVEL] [%d {YYYYY-MM-DD HH: MM: SS}] [%c:%f:%l]-%m%n"/> <zeitbezogener TregeringPolicy/> </rollingFile> <rollingFile name = "rollingFile". fileName = "$ {log_home} /rar.log" filePattel = "$ {log_home}/$$ {Datum: yyyy-mm}/$ {file_name}-%d {mm-dd-yyy}-%I.Log.gz"> <musterlayout charyym = "utf-yyy" muster = "must.gz"> <musterlayout charym = "utf-yyy HH: MM: SS Z} %-5LEVEL %Klasse {36} %L %M- %MSG %xex %n "/> <! <Loggers> <root Level = "Info"> <Appender-ref ref = "console"/> <!-<Appender-ref ref = "Alllog"/>-> <!-<Appender-ref ref = "debuglog"/>-> <Appender-ref = "Fehlerlog"/> <!-<Appender-ref.Logtest.java
import org.slf4j.logger; import org.slf4j.loggerfactory; public class logtest {public Final Logger logger = loggerfactory.getLogger (getClass ()); public static void main (String [] args) {log.trace ("Trace"); log.debug ("Debugg"); log.warn ("warnen"); log.info ("info"); log.Error ("Fehler"); }} Referenzartikel: https://www.vevb.com/article/143486.htm
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.