最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

出現(xiàn)log.info報紅的解決方案

 更新時間:2022年06月20日 11:03:49   作者:welfna  
這篇文章主要介紹了出現(xiàn)log.info報紅的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

出現(xiàn)log.info報紅

1.裝lombok插件

File——>Settings——>plugins——>search plugins   搜索lombok    安裝,重啟Intellij

如果您已經(jīng)安裝lombok插件,您也可選擇重裝lombok插件,但作者并不推薦,只作為下策使用。

2.導包

無論使用Maven還是從本地導包,切記,要導入lombok與slf4j-log4j兩個包。前者依賴后者。

Maven導包如圖所示:

3.配置log4j.properties

本文意在說明log.info報紅的原因,所以這里不做敘述,您可以另行查找。

4.報錯的解決方案

  • 程序包org.slf4j不存在:此錯誤可能是未導入slf4j-log4j包導致。
  • lombok.javac.apt.LombokProcessor could not be initialized:出現(xiàn)此錯誤請升級  lombok  jar包版本
  • 其他錯誤:請到Setting——>Build、Execution、Deployment——>Compiler——>Annotation Processors勾選Enable annotation processing。

項目問題:log.info()導致CPU飆升

項目問題:log.info()導致CPU飆升

最近公司有個需求是對接E簽寶的,也就是CA認證,大致的情況就是我們拿著文件去E簽寶做CA認定,簡單的理解就是拿著合同去E簽寶蓋章。

因為是對接三方的嗎,所以在調(diào)E簽寶服務的時候我就用log.info()把請求參數(shù)給打印了出來,方便看組裝的參加,排查問題,參數(shù)中就包含我們的合同文件流,所以整個參數(shù)是一個大對象。在做壓測的時候發(fā)現(xiàn)CPU很快就飆升到100%,并且耗時很久。但是我把打印日志的log.info()去掉之后,CPU和耗時馬上就降下來了。下面開始排查這個問題:

首先使用top命令查看進程運行情況

# top
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 7020 root      20   0 2538892 164144  11856 S  90.3  8.7  61:23.54 java
11022 root      20   0 2560528 241340  11920 S  0.3 12.8 311:23.23 java
26805 root      20   0   32612   4036   2472 S  0.3  0.2  24:50.95 AliYunDunUpdate
26838 root      10 -10  134120  14524   5924 S  0.3  0.8 343:05.22 AliYunDun
    1 root      20   0   43280   3300   2108 S  0.0  0.2   2:16.82 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:01.78 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   1:30.68 ksoftirqd/0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                 
    9 root      20   0       0      0      0 S  0.0  0.0  65:15.85 rcu_sched             
   10 root      rt   0       0      0      0 S  0.0  0.0   2:14.65 watchdog/0             
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs             
   13 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                 
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd             
   15 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback             
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd

查詢到7020這個進程有異常,在繼續(xù)查看具體異常線程。

# top -Hp 7020
 PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 23328 root      20   0 2538892 164144  11856 S  90.0  8.7   0:00.00 java

找到了當前異常進程下的異常線程后使用jstack查看詳細情況

# jstack -l 6377 > error.log
將線程ID打印成16進制形式
# printf "%x\n" 23328
5b20

然后從jstack里查詢該線程信息

# grep '18e9' error.log --color
"http-bio-6379-exec-200" #8869954 daemon prio=5 os_prio=0 tid=0x00007f74a81f6800 nid=0x5b20 waiting for monitor entry [0x00007f742457f000]

最后從jstack文件定位到堆棧信息

"http-bio-7020-exec-200" #8869954 daemon prio=5 os_prio=0 tid=0x00007f74a81f6800 nid=0x5b20 waiting for monitor entry [0x00007f742457f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.apache.log4j.Category.callAppenders(Category.java:204)
    - waiting to lock <0x00000000800371d0> (a org.apache.log4j.spi.RootLogger)
    at org.apache.log4j.Category.forcedLog(Category.java:391)
    at org.apache.log4j.Category.log(Category.java:856)
    at org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:368)

結論

在log4j 中,logger.info等日志記錄方法是同步的(使用了synchronized),大量的日志導致線程阻塞在callAppenders()這個方法,也就是這個地方導致壓測阻塞,響應耗時比較久的問題。

public void callAppenders(LoggingEvent event) {
        int writes = 0;
        for(Category c = this; c != null; c = c.parent) {
            synchronized(c) {
                if (c.aai != null) {
                    writes += c.aai.appendLoopOnAppenders(event);
                }
                if (!c.additive) {
                    break;
                }
            }
        }
        if (writes == 0) {
            this.repository.emitNoAppenderWarning(this);
        }
    }

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring?Boot?3中一套可以直接用于生產(chǎn)環(huán)境的Log4J2日志配置詳解

    Spring?Boot?3中一套可以直接用于生產(chǎn)環(huán)境的Log4J2日志配置詳解

    Log4J2是Apache Log4j的升級版,參考了logback的一些優(yōu)秀的設計,并且修復了一些問題,因此帶來了一些重大的提升,這篇文章主要介紹了Spring?Boot?3中一套可以直接用于生產(chǎn)環(huán)境的Log4J2日志配置,需要的朋友可以參考下
    2023-12-12
  • SpringBoot多環(huán)境配置及配置文件分類實例詳解

    SpringBoot多環(huán)境配置及配置文件分類實例詳解

    這篇文章主要介紹了SpringBoot多環(huán)境配置及配置文件分類,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Spring核心IoC容器的依賴注入接口和層級包命名規(guī)范

    Spring核心IoC容器的依賴注入接口和層級包命名規(guī)范

    這篇文章主要介紹了Spring核心IoC容器的依賴注入接口和層級包命名規(guī)范,IOC又名控制反轉,把對象創(chuàng)建和對象之間的調(diào)用過程,交給Spring進行管理,目的是為了降低耦合度,需要的朋友可以參考下
    2023-05-05
  • java多線程-讀寫鎖原理

    java多線程-讀寫鎖原理

    本文主要介紹java多線程的知識,這里整理了相關資料及簡單示例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • java解析XML詳解

    java解析XML詳解

    這篇文章主要介紹了XML解析四種方式代碼示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-07-07
  • 深入理解java異常處理機制及應用

    深入理解java異常處理機制及應用

    本篇文章主要介紹了java異常處理機制及應用,異常處理機制是Java語言的一大特色。從異常處理的機制、異常處理的方法、異常處理的原則等方面介紹Java語言的異常處理技術,有興趣的可以了解一下。
    2016-12-12
  • Nacos框架與原理之Nacos的參數(shù)

    Nacos框架與原理之Nacos的參數(shù)

    這篇文章主要介紹了Nacos框架與原理之Nacos的參數(shù),Nacos?中的參數(shù)有很多,如:命名空間、分組名、服務名、保護閾值、服務路由類型、臨時實例等,但下面文章我們要講解的是參數(shù),參數(shù)是什么呢,下面一起進去文章學習詳細內(nèi)容吧
    2022-05-05
  • Java8接口默認靜態(tài)方法及重復注解原理解析

    Java8接口默認靜態(tài)方法及重復注解原理解析

    這篇文章主要介紹了Java8接口默認靜態(tài)方法及重復注解原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • http調(diào)用controller方法時openfeign執(zhí)行流程

    http調(diào)用controller方法時openfeign執(zhí)行流程

    這篇文章主要為大家介紹了http調(diào)用controller方法時openfeign執(zhí)行流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • MyBatis實現(xiàn)CRUD的示例代碼

    MyBatis實現(xiàn)CRUD的示例代碼

    本文主要介紹了MyBatis實現(xiàn)CRUD的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12

最新評論

马山县| 九台市| 金湖县| 石台县| 西藏| 佳木斯市| 晋城| 长泰县| 民乐县| 上思县| 宕昌县| 万山特区| 石楼县| 新营市| 南华县| 胶南市| 乌鲁木齐市| 旬邑县| 南澳县| 岳西县| 如东县| 仙游县| 凌海市| 湟源县| 美姑县| 望江县| 花莲县| 甘谷县| 肥城市| 阳泉市| 吴忠市| 平谷区| 个旧市| 色达县| 博客| 扶绥县| 理塘县| 罗城| 修武县| 赞皇县| 湖州市|