In diesem Artikel wird hauptsächlich eine detaillierte Erklärung der Protokolle in Kombination mit Log4j und SLF4J im Rahmen des SSM -Frameworks vorgestellt und teilt sie mit Ihnen. Die Details sind wie folgt:
Fügen Sie zuerst Log4j- und SLF4J -JAR -Pakete hinzu
<!-- Log processing<!-- slf4j log package--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version> 1.7.21 </Version> </abhängig> <!-Einführung des Protokollpakets-> <De vor Ort> <gruppe> log4j </GroupID>-> <Arthts> log4j </artifactid> <version> 1.2.16 </Version> </abhängig>
Die integrierte Protokollfabrik von MyBatis bietet Protokollierungsfunktionen. Die spezifische Protokollimplementierung hat die folgenden Tools:
1. Welches zum Auswählen von Protokollimplementierungstool wird durch die integrierte Protokollfabrik von MyBatis bestimmt. Es wird den ersten gefunden (finden Sie in der oben aufgeführten Reihenfolge). Wenn keiner von ihnen gefunden wird, wird die Protokollierungsfunktion deaktiviert.
Viele Anwendungsserver enthalten bereits eine Commons -Protokollierung wie Tomcat und Webshpere, sodass MyBatis es als spezifisches Protokoll implementiert. Es ist sehr wichtig, sich daran zu erinnern. Dies bedeutet, dass in einer Umgebung wie WebSphere - WebSphere eine private Implementierung von Commons -Protokollierung bietet und Ihre LOG4J -Konfiguration ignoriert wird. Dieser Ansatz ist unweigerlich traurig. Wie kann MyBatis Ihre Konfiguration ignorieren? In der Tat wird log4j in der Reihenfolge der Priorität natürlich ignoriert, weil es bereits vorhanden ist! Wenn Ihre Anwendung jedoch in einer Umgebung mit einer Commons-Protokollierung bereitgestellt wird und Sie andere Protokollierungs-Frameworks verwenden möchten, können Sie eine andere Protokollimplementierung auswählen, indem Sie die MyBatis-Konfigurationsdatei myBatis-config.xml hinzufügen.
<? <einstellungen> <Einstellungsname = "logImpl" value = "slf4j"/> </Einstellungen> <!-Diese Datei kann eine leere Datei sein, aber diese Datei muss vorhanden sein-> <!-Der Speicherort der Plugins in der Konfigurationsdatei muss die Anforderungen erfüllen, andernfalls wird ein Fehler in den folgenden Reihenfolge angegeben: Eigenschaften. Umgebungen?, DataBaseIdProvider?, Mappers? -> <Plugins> <!-com.github.PageHelper ist der Paketame, bei dem sich die PageHelper-Klasse befindet. 4.0.0 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Als Pagenum-Seitenzahl-> <!-ist der Effekt der gleiche wie das Pagenum in Startpage-> <Eigenschaft name = "OffsetaPaGenum" value = "true" /> <! pageSize = 0 oder rowBounds.limit = 0, alle Ergebnisse werden abfragt-> <!-(entspricht der Tatsache, dass die Seitenabfrage nicht ausgeführt wird, aber das Ergebnis ist immer noch Seitentyp)-> <Eigenschaft name = "pageSizeZero" value = "true" /> <! Erfragt die erste Seite, wenn Pagenum> Seiten die letzte Seite abfragen-> <!-Wenn die Rationalisierung deaktiviert ist, gibt es bei Pagenum <1 oder pagenum> leere Daten zurück. Mapping, um Werte von MAP oder ServletRequest zu erhalten-> <!-Sie können Pagenum konfigurieren, pageSize, zählen, pageSizezero, vernünftig, orderby verwenden und den Standardwert für Mappings verwenden-> <!-Wenn Sie diese Bedeutung nicht verstehen, kopieren Sie die Konfiguration nicht kasuell-> <!-<! />-> <!-Unterstützung Paging-Parameter über Mapper-Schnittstellenparameter-> <Eigenschaft name = "SupportMethodsargumente" value = "False"/> <!-Return PageInfo-Typ immer.
Die optionalen Werte von logImpl sind: SLF4J, LOG4J, LOG4J2, JDK_LOGGGING, Commons_logging, STDOut_Logging, No_logging oder der voll qualifizierte Klassenname der Klasse, der die Schnittstelle der Schnittstelle orgs org. (Sie können sich auf die Implementierung von org.apache.ibatis.logging.slf4j.slf4jimpl.java beziehen)
Sie nennen eine Methode nach Bedarf:
org.apache.ibatis.logging.logfactory.USSLF4JLogging (); org.apache.ibatis.logging.logfactory.uselog4jlogging (); org.apache.ibatis.logging.logfactory.usejdklogging (); org.apache.ibatis.logging.logfactory.usejdklogging (); org.apache.ibatis.logging.logfactory.usecommonsLogging (); org.apache.ibatis.logging.logfactory.usestDoutLogging ();
Wenn Sie eine der oben genannten Methoden anrufen müssen, rufen Sie sie vor allen anderen MyBatis -Methoden an. Darüber hinaus ist es nur sinnvoll, die entsprechende Methode unter der Prämisse zu rufen, dass sie in der entsprechenden Protokollimplementierung vorhanden ist, ansonsten wird MyBatis ignoriert. Wenn log4j in Ihrer Umgebung nicht vorhanden ist, aber Sie die entsprechende Methode aufrufen, ignoriert MyBatis diesen Anruf und sucht stattdessen die Protokollimplementierung in der Standard -Suchreihenfolge.
2. Konfigurieren Sie web.xml
<!-last log4j-> <context-param> <param-name> log4jconfigLocation </param-name> <param-value> classPath: log4j.properties </param-value> </context-param
3. Erstellen Sie einfach eine Datei mit dem Namen Log4j.properties im Anwendungsklassenpath. Der spezifische Inhalt der Datei lautet wie folgt:
log4j.rootlogger = Info, Konsole, DailyFile# todo Bitte fügen Sie es bei der Veröffentlichung zu Alibaba Cloud hinzu. Darüber hinaus gibt die Konsole keine Ausgabe (nur Ausgabewarnung oder Fehlerinformationen)#Info, Konsole, DailyFilelog4j.logger.org.mybatis = Debuglog4j.logger.com.itzixi.mapper = debuglog4j.appender.console = org.apache.log4j.conoleAppenderlog4j.appender.console.encoding = UTF-8Log4J.Appender.console.layout = org.apache.log4j.patternLayoutlog4j.appender.console.layout.ConversionSpattern =%-D {yyyy-mm-dd HH: MM: SS, SS} [%t] [%l] - [%p]%M%N#MyBatis Zeigt die SQL -Anweisung -Protokollkonfiguration#log4j.logger.org.mybatis = Debug#log4j.logger.com.itzixi.mapper = Debugg#regelmäßig die Protokolldateien und die Log -Dateien und Generate -Logys -Logiks zu Generate Logs -Loggen auf, die jeweils Days -Dateien und Generate -Logs -Loggen zu erzeugen. log4j.appender.dailyFile = org.apache.log4j.dailyrollingFileAppenderLog4j.appender.dailyFile.encoding = utf-8log4j.appender.dailyFile #log4j.appender.dailyFile.file = c: /logs/itzixi-web/log.log4jlog4j.appender.dailyfile.file=/itzixi-disk1/logs/itzixi-web/log4jlog4j.appender.dailyFile .Datepattern = '.' Yyyy-mm-ddlog4j.appender.dailyFile.layout = org.apache.log4j.patternLayoutLog4j.appender.dailyFile.Layout.ConversionPattern =%-d {yyymm-dd HH: MM: SS, SS} [%t] [%l] - [%p]%M%N ## zeigen SQL -Anweisung Teil#log4j.logger.com.ibatis = debug#log4j.logger.com.ibatis.common.jdbc.simpledatasource = debug#log4j.logger.ibatis.common.jdbc.scriptrunner = debug#log4j.logger.com .ibatis.sqlmap.engine.impl.sqlmapclientDelegate = Debug#log4j.logger.java.sql.connection = debug#log4j.logger.java.sql.statement = debugger#log4j.logger.java.sql.peparedstatementWie in der Abbildung gezeigt, wird die SQL -Erklärung beim Eingeben von Debugs gedruckt.
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.