日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

为什么log4j的概念模型是错的--zlog的模型简介

發布時間:2025/3/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么log4j的概念模型是错的--zlog的模型简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? ? 假設你的log4j系統中有這樣的配置

log4j.logger.aa=ERROR, A1 log4j.logger.aa.bb= log4j.logger.aa.cc=INFO

? ? aa是一個父logger。aa.bb和aa.cc是aa的子logger。

? ? aa.bb繼承了aa's等級和輸出(appender),等級是ERROR,輸出是A1。

? ? aa.cc繼承并覆蓋了aa的級別。所以aa.cc的等級是INFO輸出還是A1。

? ? 需求1:如果我現在想把所有的aa的日志,所有的級別,輸出到一個特別的文件里面去,并保持原來的aa.bb、aa.cc的輸出不變,如何實現?

? ? 需求2:假設我動了aa.bb的代碼,想在生產上把aa.bb的所有日志,從DEBUG級別開始輸出到某個aa.bb.debug.log,而保持aa的ERROR以上級別的日志不動(方便運維人員不改變他們的習慣,直接看原來的日志)

? ?log4j將會如何實現這些需求?很困難,也許要在appender上引入閾值(threshold),或者引入子logger不繼承父logger的選項。子logger可以自己指定一個等級,或者從父logger那里繼承一個。但說到底,log4j的logger必須有且只能有一個等級,等級和logger是綁定的。

? ?zlog將會如何實現這些需求?首先,zlog繼承了syslog配置文件的思想,一個分類的不同等級可以同時存在不同的規則內。這就讓過濾同一分類的不同等級的日志到不同日志文件成為可能。

aa.debug “/var/log/aa.debug.log” aa.=notice “/var/log/aa.notice.log”

是不是覺得自由了很多?

? ? 其次,在zlog里面,所有的規則之間都是獨立的,沒有父子關系。綱目分類的關系表現在分類字符串中間的下劃線。舉例:

#rule 1 aa_bb.DEBUG “/var/log/aa_bb.log”#rule 2 aa_cc.INFO “/var/log/aa_cc.log”#rule 3 aa_.ERROR “/var/log/aa_error.log”#rule 4 aa.* “/var/log/aa.log”

沒有繼承,只有4條獨立的規則。如果代碼里面的分類名是“aa_bb”。代碼就像這樣:

category_t ab;ab = zlog_get_category(“aa_bb”);ZLOG_DEBUG(ab, “ab's debug”); ZLOG_ERROR(ab, “ab's error”);

? ? 配置中,rule 1的分類字符串”aa_bb”和rule 3的分類字符串”aa_”,與代碼中的名字為”aa_bb”的分類變量是匹配的。于是代碼中屬于aa_bb分類變量、>=DEBUG日志輸出到aa_bb.log,屬于aa_bb分類變量、>=ERROR會被輸出到 aa_error.log。ERROR等級的日志會被同時寫在兩個文件里面。不過rule 4的變量字符串是”aa”,它不匹配分類變量”aa_bb”,它精確匹配擁有“aa”名字的分類變量。

? ? 這就是綱目分類模型。規則和規則之間是分開的。一個代碼分類變量可以匹配多個規則分類字符串,一個規則可以屬于多個代碼分類變量。規則中的綱分類字符串(以下劃線結尾的)匹配代碼中的目分類變量,綱分類字符串的范圍包括了了目分類字符串。這樣,用戶可以選擇任意范圍的綱目分類字符串來輸出,而不影響其他規則的行為。

? ? 事實上,在zlog_get_category()被調用的時候,并不保證代碼分類變量一定有相匹配的規則分類字符串。分類變量可以有很多與之匹配的規則,也有可能一條都沒有,這取決于配置文件是怎么寫的。當配置文件改變并調用zlog_reload()后,代碼分類變量和規則分類字符串的匹配會被重新計算。根據上面所說的匹配方式,每個分類變量都會從新的配置文件里面找到自己的新規則。

? ? 也就是說,在zlog里面,多輸出是由多條規則來實現的,而不是log4j的多個appender。一條規則代表程序員對于某種分類和等級的日志的輸出需求。沒有必要指定某個分類必須為什么等級。分類、等級、輸出這3者可以自由搭配,完全解耦,這樣就帶來了極大的靈活性。

? ?必須感謝unix系統syslog的設計者,從思想上來說,zlog只是在他們的基礎上增加了一點點的改動來匹配綱目分類,但靈活性遠超java系列的綁定思想。也許log4j的設計者被繼承這兩個字晃花了眼,以為繼承就是解決一切問題的靈丹妙藥……

轉載于:https://my.oschina.net/HardySimpson/blog/53183

總結

以上是生活随笔為你收集整理的为什么log4j的概念模型是错的--zlog的模型简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色黄大色黄女片免费中国 | 激情av中文字幕 | 亚洲午夜精品久久久久久浪潮 | 深夜福利网站 | 国产精品入口免费 | 欧美性第一页 | 黄污视频网站 | 精品国产三级片在线观看 | 成人免费毛片色戒 | 精品爆乳一区二区三区无码av | www.一区二区.com | jizzzz中国| 小敏的受孕日记h | 日本不卡视频在线播放 | 青草福利在线 | av波多野吉衣 | 成人免费一区 | 少妇脱了内裤让我添 | 成人免费看片' | 国产精品一区在线观看你懂的 | 久久一二 | 一级欧美视频 | 丝袜老师办公室里做好紧好爽 | 免费一区视频 | 久久色在线视频 | 丝袜人妖 | 久久黄色免费视频 | 国产一区二区片 | 岛国av在线免费观看 | 久久久一二三 | 毛片导航| 一本一道久久a久久精品蜜桃 | 欧美精品二区 | 波多野结衣亚洲视频 | 亚洲伦理在线播放 | 成人爱爱网站 | 亚洲操片| 人人做人人爽 | 免费在线观看成人av | 日本大胆裸体做爰视频 | 成人在线影片 | 女人喷潮完整视频 | 在线观看日批 | 99久久精品国产一区色 | 亚洲av无码专区在线电影 | 可以看av的网站 | 亚洲第一天堂 | av大片网站 | 99热都是精品 | 无码国产精品高潮久久99 | aa黄色片| 国产高清视频 | 精品一区二区在线观看视频 | 国产污网站 | 日韩作爱| 色噜噜色综合 | japanese国产 | 日本xxxxxxxxx18 | av怡红院 | 亚洲区中文字幕 | 光溜溜视频素材大全美女 | 久久久激情网 | 麻豆一区二区在线 | 青青草视频免费观看 | 福利在线视频导航 | 欧洲成人午夜精品无码区久久 | 尤物在线精品 | 99综合在线 | 99久久婷婷国产综合精品电影 | 色综合久久88色综合天天免费 | 亚洲欧美中文日韩在线 | 国产99久久久国产精品成人免费 | 大桥未久视频在线观看 | 怎么可能高潮了就结束漫画 | 六月丁香色婷婷 | 中文字幕第6页 | 男女做受视频 | 色综合久久天天综合网 | 天天碰天天 | 成av人在线观看 | 北条麻妃av在线 | 热久久最新网址 | 天堂av手机版| 久久女人天堂 | 久久精品国产亚洲av麻豆 | 国产高清免费在线播放 | 精品三级 | 在线尤物 | 一级做a爰片久久毛片潮喷 天天透天天干 | 91视频在线观看视频 | 国产成人精品视频 | 中文在线免费看视频 | 精品久久中文字幕 | 99热日韩| 成人免费激情视频 | 欧美成人午夜剧场 | 国产欧美日韩精品在线 | 久久蜜臀精品av | 日韩精品成人在线观看 |