Javaログフレーム——Mybatisオプションのログフレーム解決案

1979 ワード

Mybatisオプション「Mybatisログ抽象層+サードパーティログフレーム」を組み合わせたソリューションをMybatisのログフレームとして使用します.
一、Mybatisログ抽象層
Mybatisログの抽象層には主に二つの種類が含まれています.org.apactory.ibatis.logとorg.apphe.ibatis.logFactory.
二、第三者ログフレーム
Mybatis運転時に使用されるサードパーティログフレームを動的に決定します.
「org.apphe.ibatis.log.Log log=org.apphe.ibatis.logFactory.get Log(Main.class)」という文を実行する時、具体的に以下のステップがあります.
1)org.apache.ibatis.loging.Log Factoryには、以下のように静的な語句があります.
つまり、org.apache.ibatis.loging.Log Factory類を読み込むときは、まず、どの第三者ログフレームを使うかを動的に確認します.サードパーティログフレームが選択されている優先順位は、SLF 4 J、JCL、Log 4 J、Java Logg API、NOPログフレーム(Mybatis自身が実現)から大きくなります.
static {
        tryImplementation(new Runnable() {
            public void run() {
                LogFactory.useSlf4jLogging();
            }
        });
        tryImplementation(new Runnable() {
            public void run() {
                LogFactory.useCommonsLogging();
            }
        });
        tryImplementation(new Runnable() {
            public void run() {
                LogFactory.useLog4J2Logging();
            }
        });
        tryImplementation(new Runnable() {
            public void run() {
                LogFactory.useLog4JLogging();
            }
        });
        tryImplementation(new Runnable() {
            public void run() {
                LogFactory.useJdkLogging();
            }
        });
        tryImplementation(new Runnable() {
            public void run() {
                LogFactory.useNoLogging();
            }
        });
}
2)Mybatisが使用している第三者のログフレームを動的に決定した後、「org.apphe.ibatis.log logging.Log logg=org.apphe.ibatis.logging.LogFactory.getLog(Main.class)」という文を実行したら、アダプターの例に戻ります.
この「org.apache.ibatis.loging.slaf 4 j.Slf 4 jLoggarrImpl」アダプター類を例にとって、その種類の声明の一部は以下の通りである.
package org.apache.ibatis.logging.slf4j;


import org.apache.ibatis.logging.Log;
import org.slf4j.Logger;


class Slf4jLoggerImpl implements Log {
    private Logger log;
}