日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

日志打印的這10個坑,你至少踩過一個...

來源: 責編: 時間:2024-06-27 07:57:17 220觀看
導讀前言大家好,我是撿田螺的小男孩.我們日常開發中,經常需要打印日志.但是不當的日志使用可能會導致各種問題。整理了日志打印的10個坑,希望大家都能避坑~~1.忽視日志級別,反手就是INFO常見的日志級別有5種,分別是error、

前言

大家好,我是撿田螺的小男孩.WQ628資訊網——每日最新資訊28at.com

我們日常開發中,經常需要打印日志.但是不當的日志使用可能會導致各種問題。整理了日志打印的10個坑,希望大家都能避坑~~WQ628資訊網——每日最新資訊28at.com

1.忽視日志級別,反手就是INFO

常見的日志級別有5種,分別是error、warn、info、debug、trace。日常開發中,我們需要選擇恰當的日志級別,不要反手就是打印info哈~WQ628資訊網——每日最新資訊28at.com

  • ERROR:錯誤日志,指比較嚴重的錯誤,對正常業務有影響,需要運維配置監控的;
  • WARN:警告日志,一般的錯誤,對業務影響不大,但是需要開發關注;
  • INFO:信息日志,記錄排查問題的關鍵信息,如調用時間、出參入參等等;
  • DEBUG:用于開發DEBUG的,關鍵邏輯里面的運行時數據;
  • TRACE:最詳細的信息,一般這些信息只記錄到日志文件中

2.過度日志記錄

  • 問題:記錄了過多的日志信息,導致日志文件過大,難以管理和分析。

比如這個例子(過度記錄DEBUG級別的日志):WQ628資訊網——每日最新資訊28at.com

// 過度記錄DEBUG級別的日志public void processData() {    logger.debug("Entering processData method.");    // 業務邏輯    logger.debug("Exiting processData method.");}

正例應該這樣(僅記錄必要的日志信息)WQ628資訊網——每日最新資訊28at.com

// 僅在異常和重要步驟中記錄日志public void processData() {    try {        logger.info("Start processing data.");        // 業務邏輯        logger.info("Finished processing data.");    } catch (Exception e) {        logger.error("Error occurred while processing data: ", e);    }}

我們應當根據日志的重要性設置不同的日志級別(如ERROR、WARN、INFO、DEBUG),只記錄必要的日志信息,避免日志打印處理成流水賬.WQ628資訊網——每日最新資訊28at.com

3.將debug日志直接帶到生產環境

有些伙伴亂用日志級別,甚至將DEBUG級別的日志用于生產環境。WQ628資訊網——每日最新資訊28at.com

反例(將DEBUG級別的日志直接用于生產環境):WQ628資訊網——每日最新資訊28at.com

logger.debug("This is a debug message,should not be logged in production");

正例 (debug日志級別,最好判斷一下是否開啟):WQ628資訊網——每日最新資訊28at.com

if(log.isDebugEnable()){  logger.debug("This is a debug message,should not be logged in production"); }

4.日志缺少上下文信息

大家可以看下這行日志,覺得有啥問題WQ628資訊網——每日最新資訊28at.com

logger.info("User login request");

很明顯,日志缺少上下文信息,并不方便排查.比如說,你想知道是哪個用戶的登錄請求嘛? 至少把userId 打印出來吧,如下:WQ628資訊網——每日最新資訊28at.com

logger.info("User login request,userId:{}",userId);

5.同步IO導致性能問題

同步日志記錄會阻塞主線程,影響系統性能。因此使用異步日志框架(比如Log4j 2的異步日志記錄器)來減少對性能的影響。WQ628資訊網——每日最新資訊28at.com

// 使用Log4j 2的異步日志<Configuration status="WARN">    <Appenders>        <Console name="Console" target="SYSTEM_OUT">            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>        </Console>        <Async name="AsyncConsole">            <AppenderRef ref="Console"/>        </Async>    </Appenders>    <Loggers>        <Root level="info">            <AppenderRef ref="AsyncConsole"/>        </Root>    </Loggers></Configuration>

6.日志配置不合理:

有些日志配置文件復雜,難以維護;配置文件中存在硬編碼路徑。如下:WQ628資訊網——每日最新資訊28at.com

// log4j.properties 示例log4j.rootLogger=INFO, filelog4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=/var/log/tianluoboy.log

應當使用靈活的配置WQ628資訊網——每日最新資訊28at.com

// logback.xml 示例<configuration>    <property name="LOG_HOME" value="${LOG_HOME:-/var/log/myapp}"/>    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <file>${LOG_HOME}/tianluoboy.log</file>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${LOG_HOME}/tianluoboy.%d{yyyy-MM-dd}.log</fileNamePattern>            <maxHistory>30</maxHistory>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>        </encoder>    </appender>    <root level="info">        <appender-ref ref="FILE"/>    </root></configuration>

7.日志內容泄露敏感信息

日志中記錄了用戶的敏感信息(如密碼、信用卡號),存在安全風險。WQ628資訊網——每日最新資訊28at.com

logger.info("User password: {}", password);

這都把用戶的密碼打印出來了...解決方法就是,不能打印密碼這些關鍵信息,如果是手機號、郵箱等敏感信息,則可以脫敏、或者掩碼處理。WQ628資訊網——每日最新資訊28at.com

8.日志文件輪轉和歸檔配置不當。

如果日志文件過大時未能及時輪轉,就很坑.WQ628資訊網——每日最新資訊28at.com

// 簡單的日志配置,沒有輪轉策略log4j.appender.file.File=tianluoboy.log

日志要配置合理的輪轉和歸檔策略,避免文件過大.WQ628資訊網——每日最新資訊28at.com

// logback.xml 示例<configuration>    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <file>tianluoboy.logg</file>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>tianluoboy.%d{yyyy-MM-dd}.log</fileNamePattern>            <maxHistory>30</maxHistory>        </rollingPolicy>        <encoder>            <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>        </encoder>    </appender>    <root level="info">        <appender-ref ref="FILE"/>    </root></configuration>

9.日志框架漏洞的問題

有些日志框架,在低版本,可能會存在安全漏洞問題.甚至有些可能會存在漏洞還沒被發現.WQ628資訊網——每日最新資訊28at.com

我們如何做呢? 如果是低版本存在安全漏洞的日志框架,我們要盡快升級到最新版本.WQ628資訊網——每日最新資訊28at.com

比如Log4Shell 是Log4j 2.x中一個嚴重的遠程代碼執行(RCE)漏洞。攻擊者可以通過特制的日志消息來觸發JNDI查找請求,從而在受影響的系統上執行任意代碼。WQ628資訊網——每日最新資訊28at.com

可以升級到Log4j 2.17.0或更高版本,這些版本已經修復了該漏洞。WQ628資訊網——每日最新資訊28at.com

尚未被發現的漏洞,也可能潛在地影響應用程序的安全性。我們要使用成熟的日志框架,并且要定時更新和維護.WQ628資訊網——每日最新資訊28at.com

10.錯誤配置LevelFilter造成日志重復記錄

錯誤配置LevelFilter可能導致日志重復記錄的問題.比如你這樣配置:WQ628資訊網——每日最新資訊28at.com

<Configuration status="WARN">    <Appenders>        <Console name="ConsoleAppender" target="SYSTEM_OUT">            <PatternLayout pattern="%d [%t] %-5level: %msg%n%throwable"/>            <Filters>                <LevelFilter level="INFO" notallow="ACCEPT" notallow="DENY"/>            </Filters>        </Console>        <File name="FileAppender" fileName="app.log">            <PatternLayout pattern="%d [%t] %-5level: %msg%n%throwable"/>            <Filters>                <LevelFilter level="INFO" notallow="ACCEPT" notallow="DENY"/>            </Filters>        </File>    </Appenders>    <Loggers>        <Root level="INFO">            <AppenderRef ref="ConsoleAppender"/>            <AppenderRef ref="FileAppender"/>        </Root>    </Loggers></Configuration>

在上述配置中,由于兩個appender的LevelFilter條件相同,導致每條INFO級別的日志都會同時被兩個appender記錄,產生了重復日志。WQ628資訊網——每日最新資訊28at.com

可以使用不同的過濾器策略來確保日志只被一個appender記錄:WQ628資訊網——每日最新資訊28at.com

<Configuration status="WARN">    <Appenders>        <Console name="ConsoleAppender" target="SYSTEM_OUT">            <PatternLayout pattern="%d [%t] %-5level: %msg%n%throwable"/>            <Filters>                <LevelFilter level="INFO" notallow="ACCEPT" notallow="DENY"/>            </Filters>        </Console>        <File name="FileAppender" fileName="app.log">            <PatternLayout pattern="%d [%t] %-5level: %msg%n%throwable"/>            <Filters>                <LevelFilter level="DEBUG" notallow="ACCEPT" notallow="DENY"/>                <LevelFilter level="INFO" notallow="DENY" notallow="DENY"/>            </Filters>        </File>    </Appenders>    <Loggers>        <Root level="DEBUG">            <AppenderRef ref="ConsoleAppender"/>            <AppenderRef ref="FileAppender"/>        </Root>    </Loggers></Configuration>

在這個配置中,ConsoleAppender只記錄INFO級別及以上的日志,而FileAppender記錄DEBUG級別但排除INFO級別的日志。這樣可以避免INFO級別的日志被兩個appender同時記錄。WQ628資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-96759-0.html日志打印的這10個坑,你至少踩過一個...

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 避免消息積壓的終極指南:四個關鍵技巧

下一篇: 一文搞懂大廠商品中心設計!

標簽:
  • 熱門焦點
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • 官方承諾:K60至尊版將會首批升級MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會搭載天璣9200+處理器和獨顯芯片X7的同時,Redmi給出了官方承諾,K60至尊重大更新首批升級,會首批推送MIUI 15。也就是說雖然
  • 6月安卓手機性能榜:vivo/iQOO霸占旗艦排行榜前三

    2023年上半年已經正式過去了,我們也迎來了安兔兔V10版本,在新的驍龍8Gen3和天璣9300發布之前,性能榜的榜單大體會以驍龍8Gen2和天璣9200+為主,至于那顆3.36GHz的驍龍8Gen2領先
  • 5月iOS設備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發布的iOS設備性能榜的上榜設備并沒有什么更替,僅僅只有跑分變化而產生的排名變動,剛剛開始的蘋果WWDC2023,推出的產品也依舊是新款Mac Pro、新款Mac Stu
  • CSS單標簽實現轉轉logo

    轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。新logo
  • 如何使用JavaScript創建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經瀏覽過購物網站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區域,以便瀏覽。結合這個小小的重要功能可以大大改善您網站的用戶體驗
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運營研究社作者 | 張知白編輯 | 楊佩汶設計 | 晏談夢潔這個暑期,旅游賽道徹底火了:有的「地方」火了&mdash;&mdash;貴州村超旅游收入 1 個月超過 12 億;有的「博主」火了&m
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的&ldquo;網紅&rdquo;。7月5日至9日,為期5天的東方甄選&ldquo;甘肅行&rdquo;首次在自有App內直播,
  • 華為Mate60系列模具曝光:采用碩大圓形后置相機模組+拼接配色方案

    據此前多方爆料,今年華為將開始恢復一年雙旗艦戰略,除上半年推出的P60系列外,往年下半年的Mate系列也將迎來更新,有望在9-10月份帶來全新的華為Mate60
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
一区二区国产精品| 国产手机视频精品| 久热爱精品视频线路一| 久久亚洲国产精品日日av夜夜| 久久久久国产精品麻豆ai换脸| 美女精品在线| 欧美日韩午夜| 国产日韩欧美一区二区| 在线观看91精品国产麻豆| 亚洲人成高清| 99热这里只有精品8| 性欧美xxxx视频在线观看| 老司机精品导航| 欧美日韩国产色视频| 国产精品自拍三区| 在线电影一区| 亚洲一区二区三区精品动漫| 久久精品夜夜夜夜久久| 欧美精品一区在线发布| 国产女精品视频网站免费| 亚洲国产天堂久久综合网| 一区二区三区免费在线观看| 久久精品国产一区二区三区| 欧美精品黄色| 国产欧美日韩精品a在线观看| 亚洲第一狼人社区| 亚洲一区二区精品在线观看| 久久偷窥视频| 国产精品video| 今天的高清视频免费播放成人| 亚洲美女色禁图| 久久成人免费| 欧美三区在线视频| 亚洲承认在线| 午夜精品成人在线视频| 欧美激情亚洲综合一区| 国内精品久久久久伊人av| 在线一区日本视频| 久久亚洲综合网| 国产精品视频导航| 亚洲伦伦在线| 久久一区二区三区国产精品| 国产精品国产自产拍高清av| 亚洲国产小视频在线观看| 午夜精品视频| 欧美日韩在线视频首页| 亚洲国产高清一区二区三区| 欧美在线短视频| 欧美视频在线看| 亚洲日本精品国产第一区| 久久九九久精品国产免费直播 | 欧美日韩大片| 国产亚洲一级| 亚洲一区二区欧美日韩| 欧美激情精品久久久六区热门| 欧美日韩精品一区二区| 欧美激情国产日韩| 影音先锋亚洲电影| 欧美一区二区三区在线视频| 欧美丝袜一区二区三区| 亚洲激情影院| 久久夜色撩人精品| 国产在线视频欧美| 亚洲欧美日韩国产成人| 国产精品成人在线观看| 日韩午夜av| 欧美激情一区在线| 亚洲肉体裸体xxxx137| 噜噜爱69成人精品| 一区二区三区在线视频播放| 欧美在线视频全部完| 国产精品一区久久久久| 亚洲一区二区三区成人在线视频精品| 欧美母乳在线| 亚洲美女中文字幕| 你懂的视频一区二区| 亚洲第一黄网| 欧美va天堂| 亚洲茄子视频| 欧美成人精品福利| 亚洲黄色成人网| 欧美电影打屁股sp| 最新亚洲电影| 欧美激情按摩| 日韩午夜一区| 欧美日韩一区二区三区在线视频| 亚洲毛片在线看| 欧美人与性动交a欧美精品| 日韩午夜av在线| 欧美日韩大片一区二区三区| 一本色道久久88亚洲综合88| 欧美日韩在线观看一区二区| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美亚洲不卡| 亚洲欧美日韩一区| 国产日本欧美一区二区| 久久精精品视频| 狠狠色丁香婷婷综合久久片| 另类尿喷潮videofree| 亚洲精品久久久久| 欧美色道久久88综合亚洲精品| 亚洲一区国产一区| 国产日韩欧美视频| 久久综合给合久久狠狠色 | 在线视频中文亚洲| 国产精品老牛| 久久激情网站| 亚洲欧洲日本一区二区三区| 欧美日韩一卡二卡| 亚洲欧美日韩在线观看a三区| 国产乱子伦一区二区三区国色天香 | 欧美性猛交xxxx乱大交蜜桃| 亚洲男人的天堂在线观看| 国产女人aaa级久久久级| 久久久精品网| 亚洲国内精品| 国产精品啊啊啊| 久久久国产精品一区| 亚洲国产专区| 欧美视频精品一区| 欧美亚洲午夜视频在线观看| 曰韩精品一区二区| 欧美日韩亚洲一区二区三区在线 | 永久555www成人免费| 欧美巨乳在线| 欧美亚洲综合另类| 亚洲第一久久影院| 国产精品v日韩精品| 久久久久高清| 亚洲最新中文字幕| 国产亚洲综合精品| 欧美激情久久久久久| 亚洲欧美日韩另类精品一区二区三区 | 国产欧美一区二区精品婷婷 | 久久激情中文| 亚洲日本中文字幕| 国产精品午夜久久| 女生裸体视频一区二区三区| 亚洲一区二区黄色| 亚洲国产成人在线视频| 国产精品久久97| 蜜臀va亚洲va欧美va天堂| 亚洲性线免费观看视频成熟| 精久久久久久| 国产精品久久久久久久第一福利| 久久婷婷麻豆| 亚洲一区二区三区在线| 亚洲电影免费观看高清完整版在线观看 | 欧美一区二区三区免费视| 亚洲黄色毛片| 国产女主播一区二区三区| 欧美国产先锋| 久久精品国产久精国产爱| 一本色道婷婷久久欧美| 在线看片第一页欧美| 国产精品亚洲视频| 欧美国产视频一区二区| 欧美主播一区二区三区| 一本色道久久综合亚洲精品婷婷| 激情成人中文字幕| 国产精品卡一卡二卡三| 欧美精品国产精品| 老司机精品视频网站| 欧美亚洲一区在线| 99这里只有久久精品视频| 伊人狠狠色j香婷婷综合| 国产精品普通话对白| 欧美精品久久久久a| 久久综合久久综合久久综合| 亚洲欧美在线网| 在线视频中文亚洲| 亚洲激情视频在线| 韩国av一区二区| 国产伦理一区| 欧美午夜性色大片在线观看| 欧美成人福利视频| 久久综合五月| 久久九九久久九九| 欧美一级理论性理论a| 亚洲五月婷婷| 一本色道久久综合亚洲精品小说 | 国产精品播放| 欧美日韩亚洲在线| 欧美电影在线观看| 美女图片一区二区| 久久人人爽爽爽人久久久| 欧美在线观看一区| 亚洲欧美视频在线观看| 一区二区三区回区在观看免费视频| 亚洲国产精品美女| 亚洲成人自拍视频| 亚洲二区视频在线| 亚洲第一中文字幕在线观看| 好看的亚洲午夜视频在线| 国产一区清纯| 国产中文一区| 韩日精品在线| 国内成人精品一区| 国语自产在线不卡| 好看的亚洲午夜视频在线| 狠狠色狠狠色综合人人| 国内精品国产成人| 在线观看欧美黄色| 亚洲国产高潮在线观看|