中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決springboot log4j2不能打印框架錯誤日志的問題

發布時間:2021-08-10 09:09:03 來源:億速云 閱讀:698 作者:小新 欄目:開發技術

這篇文章主要介紹如何解決springboot log4j2不能打印框架錯誤日志的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

springboot log4j2為什么不能打印框架錯誤日志

問題

使用springboot時老的框架使用的是log4j2,為了兼容不能夠使用logback,按照網上的教程導入了log4j2但是不能夠輸入框架錯誤日志,例如bean命名重復,springmvc url映射重復,這些都是開發中所需要的友好提示

解決方案

怎么出現的問題,就不詳細描述了,原因是我引入的log42是散件不是基于springboot集成配置的,導致只能夠輸出基本信息,原理我會在 一個月后左右探究完畢補充。

下面我說說怎么正確用springboot輸出springboot框架錯誤的

1. 排除原生logback日志,否則會沖突
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <exclusions>
    <!-- spring boot 默認的日志框架是Logback,所以在引用log4j之前,需要先排除該包的依賴,再引入log4j2的依賴 -->
    <exclusion>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
2. 引入集成springboot配置的log4j2

我出現的我問題就是這里,我引入的是原先ssm用的log4j2導致,沒有正確注入,初始log4j失敗了,所以選擇最省事的法子,引入人家寫好的log4jpom

  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-log4j2</artifactId>
  </dependency>

可以看看人家默認的pom.xml引入的log4j,就知道自己引用出錯在哪里了

 <dependencies>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>2.10.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.10.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jul</artifactId>
      <version>2.10.0</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>1.7.25</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

配置后的效果

如下圖所示,我寫了兩個 @RequestMapping() value="listTree"的方法

@RequestMapping("listTree")
    @ResponseBody
    public JsonResult getAreaTree() {
        List<AreaModel> all = areaService.findAll();
        all.forEach(x -> x.setName(x.getAreaName()));
        return new JsonResult(all);
    }
    @RequestMapping("listTree")
    @ResponseBody
    public JsonResult getAreaTree2() {
        List<AreaModel> all = areaService.findAll();
        all.forEach(x -> x.setName(x.getAreaName()));
        return new JsonResult(all);
    }

正確打印錯誤日志

[reform]2019-01-09 09:31:47.570 [WARN]:Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'areaController' method
public com.ld.model.json.JsonResult com.ld.action.area.AreaController.getAreaTree2()
to {[/area/listTree]}: There is already 'areaController' bean method
public com.ld.model.json.JsonResult com.ld.action.area.AreaController.getAreaTree() mapped.   org.apache.commons.logging.impl.Jdk14Logger.log(Jdk14Logger.java:99)

springboot 2.0 log4j2日志打印問題

日志不能正常打印,測試、線上環境未生成滾動日志

日志文件配置:

如何解決springboot log4j2不能打印框架錯誤日志的問題

如何解決springboot log4j2不能打印框架錯誤日志的問題

控制臺信息:

如何解決springboot log4j2不能打印框架錯誤日志的問題

解決辦法:

在pom 文件中

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <!-- 排除自帶的logback依賴 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

或者:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!-- 排除自帶的logback依賴 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

以上是“如何解決springboot log4j2不能打印框架錯誤日志的問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌江| 鹿邑县| 皮山县| 淳安县| 平顺县| 新安县| 仁化县| 普安县| 长泰县| 和静县| 清镇市| 东兰县| 调兵山市| 宣威市| 宜春市| 石林| 泰和县| 镇远县| 赤城县| 湖口县| 永城市| 丰顺县| 措勤县| 仁布县| 曲水县| 南丹县| 保康县| 宜城市| 沅陵县| 遂川县| 德惠市| 西藏| 甘谷县| 达州市| 紫阳县| 仁怀市| 易门县| 磐安县| 棋牌| 宜阳县| 大姚县|