跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有个 maven 项目日志打印的问题请教下 v 友们
未分類
2 6 月 2020

有个 maven 项目日志打印的问题请教下 v 友们

有个 maven 项目日志打印的问题请教下 v 友们

資深大佬 : fangcan 9

项目里面使用了 mybatis

  1. 当项目里面没有设置依赖 logback 和 slf4j 时, mybatis 相关的日志(比如 sql 等)没有打印出来,也没有报错。
  2. 在 pom 里面设置依赖 logback 和 slf4j 后就能打印出 mybatis 的日志了

疑问点:

  1. 为什么我自己的 pom 里面不配置日志相关依赖就不打印 mybatis 的日志但是也不报错?
  2. 依赖包之间日志工具是怎么样的一个关系?不同的依赖包使用不同的日志工具会有怎样的影响?

》表达的不太好,有疑问可以评论下 感谢

附上 dependencies

<dependencies>         <dependency>             <groupId>cn.hutool</groupId>             <artifactId>hutool-all</artifactId>             <version>4.4.5</version>         </dependency>         <!-- jsoup Java HTML Parser Java 版的 Html 解析工具 https://jsoup.org/-->         <dependency>             <groupId>org.jsoup</groupId>             <artifactId>jsoup</artifactId>             <version>1.11.3</version>         </dependency>         <!-- Servlet -->         <dependency>             <groupId>javax.servlet</groupId>             <artifactId>javax.servlet-api</artifactId>             <version>3.1.0</version>             <scope>provided</scope>         </dependency>          <!--spring 相关-->         <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-context</artifactId>             <version>4.3.18.RELEASE</version>         </dependency>         <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-core</artifactId>             <version>4.3.18.RELEASE</version>         </dependency>         <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-beans</artifactId>             <version>4.3.18.RELEASE</version>         </dependency>          <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-webmvc</artifactId>             <version>4.3.18.RELEASE</version>         </dependency>         <!--数据库事务管理-->         <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-jdbc</artifactId>             <version>4.3.18.RELEASE</version>         </dependency>          <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->         <dependency>             <groupId>org.springframework</groupId>             <artifactId>spring-tx</artifactId>             <version>4.3.18.RELEASE</version>         </dependency>           <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->         <dependency>             <groupId>org.mybatis</groupId>             <artifactId>mybatis-spring</artifactId>             <version>1.3.2</version>         </dependency>          <!--mybatis-->         <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->         <dependency>             <groupId>org.mybatis</groupId>             <artifactId>mybatis</artifactId>             <version>3.4.6</version>         </dependency>          <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->         <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <version>5.1.38</version>         </dependency>         <dependency>             <groupId>commons-dbcp</groupId>             <artifactId>commons-dbcp</artifactId>             <version>1.4</version>         </dependency>          <!-- springmvc rest api responseBody 需要使用 转换器使用-->         <dependency>             <groupId>com.fasterxml.jackson.core</groupId>             <artifactId>jackson-core</artifactId>             <version>${jackson.version}</version>         </dependency>         <dependency>             <groupId>com.fasterxml.jackson.core</groupId>             <artifactId>jackson-databind</artifactId>             <version>${jackson.version}</version>         </dependency>          <dependency>             <groupId>org.projectlombok</groupId>             <artifactId>lombok</artifactId>             <version>1.16.10</version>             <scope>provided</scope>         </dependency>          <!-- log start -->         <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->         <dependency>             <groupId>org.slf4j</groupId>             <artifactId>slf4j-api</artifactId>             <version>1.7.26</version>         </dependency>         <dependency>             <groupId>ch.qos.logback</groupId>             <artifactId>logback-core</artifactId>             <version>${logback.version}</version>         </dependency>       <!--  <dependency>             <groupId>ch.qos.logback</groupId>             <artifactId>logback-access</artifactId>             <version>${logback.version}</version>         </dependency>-->         <dependency>             <groupId>ch.qos.logback</groupId>             <artifactId>logback-classic</artifactId>             <version>${logback.version}</version>         </dependency>      </dependencies> 

大佬有話說 (5)

  • 資深大佬 : arrow8899

    https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/logging/LogFactory.java
    你看下代码就知道了,mybatis 写日志时会依次尝试 slf4j, commonslogging,log4j 等日志库,如果没有找到对应实现,就走 noLogging 的逻辑,不写日志。

  • 資深大佬 : arrow8899

    一个项目内可以有多种写日志的实现,不会互相影响。

  • 主 資深大佬 : fangcan

    @arrow8899 感谢 确实是有这个方法,不过没看明白,求指教下

  • 主 資深大佬 : fangcan

    @arrow8899

  • 主 資深大佬 : fangcan

    @arrow8899 下面是具体的方法,我看尝试的每个方法都是传入了 mybatis 的对于不同的 log 的实现,那不是第一个方法就能成立了么?
    private static void setImplementation(Class<? extends Log> implClass) {
    try {
    Constructor<? extends Log> candidate = implClass.getConstructor(String.class);
    Log log = candidate.newInstance(LogFactory.class.getName());
    if (log.isDebugEnabled()) {
    log.debug(“Logging initialized using ‘” + implClass + “‘ adapter.”);
    }
    logConstructor = candidate;
    } catch (Throwable t) {
    throw new LogException(“Error setting Log implementation. Cause: ” + t, t);
    }
    }

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具