この記事では、主に、SSMフレームワークの下でlog4jとslf4jと組み合わされたログの詳細な説明を紹介し、それらを共有します。詳細は次のとおりです。
最初にlog4jおよびslf4j jarパッケージを追加します
<! - ログ処理<! - slf4jログパッケージ - > <依存関係> groupid> org.slf4j </groupid> <artifactid> slf4j-api </artifactid> <バージョン> 1.7.21 </version> </dependency> <seplency> <shepency> <shipency> <segrougid> org.slf4j </groupid> <artifactid> <artifactid> <> <> <> <> <> <> < artifactidj12 <バージョン> 1.7.21 </version> </dependency> <! - ログパッケージの紹介 - > <依存関係> log4j </groupId> - > <artifactid> log4j </artifactid> <バージョン> 1.2.16 </version> </dependency>
MyBatisの組み込みログファクトリーは、ロギング機能を提供します。特定のログ実装には、次のツールがあります。
1。選択するログ実装ツールは、MyBatisの組み込みログファクトリーによって決定されます。最初に見つかったものを使用します(上記の順序で見つける)。それらのどれも見つからない場合、ロギング関数は無効になります。
多くのアプリケーションサーバーには、TomcatやWebshpereなどのCommonsロギングが既に含まれているため、MyBatisは特定のログとして実装します。これを覚えておくことは非常に重要です。これは、WebSphere -WebSphereなどの環境では、コモンズロギングの個人的な実装を提供し、LOG4J構成が無視されることを意味します。このアプローチは必然的に悲しいです。 MyBatisはどのように構成を無視できますか?実際、コモンズロギングはすでに存在しているため、log4jは優先順位のために自然に無視されます!ただし、アプリケーションがCommonsロギングを含む環境に展開され、他のロギングフレームワークを使用する場合は、MyBatis構成ファイルMyBatis-Config.xmlに設定(config)を追加して、異なるログ実装を選択できます。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype構成public " - // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" <name = "logimpl" value = "slf4j"/> </settings> <! - このファイルは空のファイルにすることができますが、このファイルが必要です - > <! - 構成ファイルのプラグインの位置は次の順序を満たす必要があります。 DatabaseIdProvider?、マッパー? - > <プラグイン> <! - com.github.pagehelperは、pagehelperクラスが配置されているパッケージ名です - > <plugin interceptor = "com.github.pagehelper.pagehelper"> <! - このパラメーターは、バージョンで設定せずに設定できます。 4.0.0------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ When set to true, the first parameter offset of RowBounds will be used Pagenumページ番号 - > <! - 効果はstartpageのpagenumと同じです - > <プロパティ名= "offsetaspagenum" value = "true" /> <! - このパラメーターはデフォルトです - > <! - count queryはrowbounds paginationを使用して実行されます。またはrowbounds.limit = 0、すべての結果はクエリに照会されます - > <! - (ページクエリが実行されないという事実と同等ですが、結果はまだページタイプです) - > <プロパティ名= "pagesizezero" value = "true" /> <! - バージョン3.3.0は利用可能です - ページパラメーター合理化、fardはdefanyis is-defany o-deferization of the defany of edabed of edabed of edabed of page is adable aid of fid edabled aid edabled aid firs Pagenum>ページが最後のページをクエリする場合 - > <! - 合理化が無効になっている場合、pagenum <1またはpagenum>ページが空のデータを返します - > <! - <プロパティ名= "妥当な"値= "false" /> - > <! - バージョン3.5.0が利用可能です - startpageパラメーターfiet a paramのパラメーターをサポートするために、パラメーターをサポートするためにServletRequest-> <! - pagenum、pageize、count、count、pagesizezero、妥当な、注文byを構成でき、マッピングのデフォルト値を使用できます - > <! - 構成を気軽にコピーしないでください - > <! - <プロパティname = "params" value = "pagehelperpertart; pagehelperperows; /> - > <! - マッパーインターフェイスパラメーターを介したページングパラメーターのパッシングパラメーターのパッシングパラメータをサポート - > <プロパティ名= "supportmethodsarguments" value = "false"/> <! - 常にreturn pageinfoタイプを確認します。
logimplのオプション値は、slf4j、log4j、log4j2、jdk_logging、commons_logging、stdout_logging、no_logging、またはinterface org.apache.ibatis.logging.logging.logを実装するクラスの完全に適格なクラス名、およびこのクラスの構成要素は、文字列としての文字列として必要です。 (org.apache.ibatis.logging.slf4j.slf4jimpl.javaの実装を参照できます)
必要に応じてメソッドを呼び出します。
org.apache.ibatis.logging.logfactory.useslf4jlogging(); 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();
上記の方法のいずれかを呼び出す必要がある場合は、他のすべてのMyBatisメソッドの前に電話してください。さらに、対応するログ実装に存在するという前提の下で対応するメソッドを呼び出すことは意味があります。そうしないと、MyBatisは無視されます。 log4jが環境に存在しないが、対応する方法を呼び出す場合、MyBatisはこの呼び出しを無視し、代わりにデフォルトの検索順序でログ実装を検索します。
2。web.xmlを構成します
<! - log4j - > <context-param> <param-name> log4jconfiglocation </param-name> <param-value> classpath:log4j.properties </param-value> </context-param> <リスナー> <リスナークラス> org.springframework.util.log4jconfiglistener>
3.アプリケーションClassPathでlog4j.Propertiesという名前のファイルを作成するだけで、ファイルの特定のコンテンツは次のとおりです。
log4j.rootlogger = info、console、dailyfile#todo alibabaクラウドに公開するときに追加してください。さらに、コンソールは出力(出力警告またはエラー情報のみ)#情報、コンソール、DailyFileLog4J.Logger.org.MyBatis = debuglog4j.logger.com.itzixi.mapper = debuglog4j.appender.console = org.apache.log4j.consoleappenderlog4j.appender.console.encoding = utf-8log4j.appender.console.layout = org.apache.log4j.patternlayoutlog4j.appender.console.layout.conversionpattern =%-d {yyyy-mm-dd HH:mm:ss、ss} [%t] [%l] - [%p]%m%n#mybatis displays sqlステートメントlog構成log4j.appender.dailyfile = org.apache.log4j.dailyrollingfileappenderlog4j.appender.dailyfile.encoding = utf-8log4j.appender.dailyfile.threshold = info#dodoローカルログアドレス、公式環境については、アリババクラウドアドレスの切り替えを必ず切り替えてください#log4j.appender.dailyfile.file = c:/logs/itzixi-web/log.log4jlog4j.appender.dailyfile.file=/itzixi-disk1/logs/itzixi-web/log.log4jlog4j.appender.dailyfile .datePattern = '。' yyyy-mm-ddlog4j.appender.dailyfile.layout = org.apache.log4j.patternlayoutlog4j.appender.dailyfile.layout.conversionpattern =%-d {yyyymmdd HH:mm:ss、ss} [%t] [%l] - [%p]%m%n ## show sqlステートメントパート#log4j.logger.com.ibatis = debug#log4j.logger.com.ibatis.common.jdbc.simpledatasource = debug#log4j.logger.com.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 = debug#log4j.logger.java.sql.preparedtatement = debug図に示すように、デバッグを入力すると、SQLステートメントが印刷されます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。