精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么Pycharm輸出的日志全部是紅色!

開發(fā) 后端
如果未在記錄器上顯式設(shè)置級(jí)別,則使用其父記錄器的級(jí)別作為其有效級(jí)別。如果父記錄器也沒有設(shè)置級(jí)別,則依此類推,搜索父級(jí)的父級(jí),直到找到明確設(shè)置了級(jí)別的記錄器。

在上一篇文章1萬字詳解 python logging日志模塊 中,深入淺出的講解了日志的基本原理與用法。但還有一些內(nèi)容并沒有涉及到,所以這篇文章作為上一篇文章的補(bǔ)充。

希望這兩篇文章能幫助你完全理解日志模塊的使用,在項(xiàng)目中對(duì)日志的運(yùn)用游刃有余。上一篇還沒看的建議先閱讀上一篇

1、為什么子記錄器不需要設(shè)置日志等級(jí)也可以輸出?

如果未在記錄器上顯式設(shè)置級(jí)別,則使用其父記錄器的級(jí)別作為其有效級(jí)別。如果父記錄器也沒有設(shè)置級(jí)別,則依此類推,搜索父級(jí)的父級(jí),直到找到明確設(shè)置了級(jí)別的記錄器。根記錄器默認(rèn)下為 WARNING 級(jí)別

  1. import logging 
  2.  
  3. parent = logging.getLogger("parent"
  4. parent.setLevel(logging.INFO) 
  5. parent.addHandler(logging.StreamHandler()) 
  6.  
  7. child = logging.getLogger("parent.child"
  8. child.info("msg"

輸出

  1. msg 

這里我沒有給child設(shè)置日志等級(jí),他會(huì)從父記錄器查找日志級(jí)別,所以child也可以輸出info級(jí)別的日志。關(guān)于記錄器的繼承關(guān)系可以參考第一篇文章

2、為什么有時(shí)候日志會(huì)輸出兩次?

看下面例子:

  1. import logging 
  2.  
  3. # 初始化日志,并設(shè)置日志級(jí)別(為root設(shè)置為DEBUG級(jí)別,關(guān)聯(lián)StreamHandler,設(shè)置BASIC_FORMAT格式) 
  4. logging.basicConfig(level=logging.DEBUG) 
  5.  
  6. # 定義root記錄器 
  7. root = logging.getLogger() 
  8.  
  9. # 定義child記錄器 
  10. child = logging.getLogger("child"
  11. console_handler = logging.StreamHandler() 
  12. # 給child綁定處理器 
  13. child.addHandler(console_handler) 
  14. # 記錄一條info日志 
  15. child.info("child info"

輸出

  1. child info 
  2. INFO:child:child info 

代碼中明明只記錄了一次日志,卻輸出了兩次,而且兩次的日志格式不一樣。這是因?yàn)?child 這個(gè)記錄器添加了一個(gè)叫console_handler的處理器, 而root根記錄器默認(rèn)也帶有自己的處理器(也是StreamHandler實(shí)例)

  1. print(root.handlers) # [<StreamHandler <stderr> (NOTSET)>] 

根據(jù)python中日志模塊的處理機(jī)制,子記錄器記錄的消息會(huì)自動(dòng)傳播給父級(jí)記錄器的關(guān)聯(lián)的處理器。所以在這個(gè)例子中,child記錄的消息除了會(huì)發(fā)給自己的handler外,還是傳播給root記錄器的handler,因此最終輸出了兩次,流程圖如下

logging-flow.png

如果不希望子記錄器記錄的消息傳播給父級(jí)記錄器,可以設(shè)置記錄器的屬性propagate為False,關(guān)閉傳播。

  1. child.propagate = False 

如此一來,最終輸出到終端的日志就只有child自己的處理器輸出的記錄

  1. child info 

配置處理器的最佳實(shí)踐是給頂級(jí)記錄器配置處理器,再根據(jù)需要?jiǎng)?chuàng)建子記錄器, 因?yàn)橛涗涀罱K都會(huì)傳播給父記錄器

  1. import logging 
  2.  
  3. parent = logging.getLogger("parent"
  4. parent.setLevel(logging.DEBUG) 
  5. parent.addHandler(logging.StreamHandler()) 
  6.  
  7. # 不需要給子記錄器單獨(dú)配置handler 
  8. child = logging.getLogger("parent.child"
  9. child.info("msg"

對(duì)于日志的流程處理,python官方文檔畫了一張更為細(xì)致的流程圖,可以參考

logging_flow.png

第一次看估計(jì)有點(diǎn)暈,但先看我畫的這張圖再來看這張圖,你就能懂了,為了簡(jiǎn)化我省去了過濾器以及不斷循環(huán)查找父級(jí)記錄器的這個(gè)流程。

3、 為什么我的pycharm中輸出的日志是紅色?

不知道你的pycharm輸出的日志不管是info信息還是error信息,反正都是紅色,一看以為整屏都是錯(cuò)誤。

把下面代碼放在Pycharm運(yùn)行看效果:

  1. import logging 
  2. logging.basicConfig(level=logging.DEBUG) 
  3. logging.info("hello"

這是因?yàn)槭褂胷oot記錄器記錄日志時(shí),默認(rèn)配置的handler是一個(gè)StreamHandler。

我們打開StreamHandler的源碼

  1. class StreamHandler(Handler): 
  2.     ""
  3.     A handler class which writes logging records, appropriately formatted, 
  4.     to a stream. Note that this class does not close the stream, as 
  5.     sys.stdout or sys.stderr may be used. 
  6.     ""
  7.  
  8.     terminator = '\n' 
  9.  
  10.     def __init__(self, stream=None): 
  11.         ""
  12.         Initialize the handler. 
  13.  
  14.         If stream is not specified, sys.stderr is used. 
  15.         ""
  16.         Handler.__init__(self) 
  17.         if stream is None: 
  18.             stream = sys.stderr 
  19.         self.stream = stream 

初始化這個(gè)Handler時(shí),會(huì)接收一個(gè)stream的參數(shù),如果不傳,默認(rèn)就使用的系統(tǒng)標(biāo)準(zhǔn)錯(cuò)誤流(sys.stderr)輸出,pycharm對(duì)錯(cuò)誤流輸出的字體樣式做了紅色渲染,如果換成 sys.stdout 輸出的就不再紅色了。

  1. import logging 
  2. import sys 
  3.  
  4. handler = logging.StreamHandler(stream=sys.stdout) 
  5. logging.basicConfig(level=logging.DEBUG, handlers=[handler]) 
  6.  
  7. # 或者指定stream參數(shù) 
  8. # logging.basicConfig(level=logging.DEBUG, stream=sys.stdout) 
  9.  
  10. logging.info("hello"

4、怎么生成以日期時(shí)間命名的日志?

實(shí)際應(yīng)用中,我們會(huì)對(duì)日志進(jìn)行歸檔存儲(chǔ),每天生成一份日志,如果哪天出了問題,也方便定位,直接找到當(dāng)天的日志文件就可以分析。我們只需要給logger添加一個(gè)TimedRotatingFileHandler處理器就行。

  1. file_handler = TimedRotatingFileHandler(‘'logs/api.log'), 
  2.                                             when="D", interval=1, backupCount=10, 
  3.                                             encoding="UTF-8", delay=False, utc=True
  4. formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  5. file_handler.setFormatter(formatter) 
  6. file_handler.setLevel(logging.INFO) 
  7. logger.addHandler(file_handler) 

5、為什么我日志配置后不生效?

可能跟程序的加載順序有關(guān),看個(gè)例子

  1. import logging 
  2.  
  3. logger = logging.getLogger() 
  4. handler = logging.StreamHandler() 
  5. logger.addHandler(handler) 
  6. logger.info("hello1"
  7.  
  8. logger.setLevel(logging.INFO) 
  9. logger.info("hello2"

像上面的代碼最后只輸出了hello2,不過實(shí)際場(chǎng)景中,代碼沒這么簡(jiǎn)單,通常是在a模塊中的某個(gè)函數(shù)中初始化日志框架配置, 在b模塊外層創(chuàng)建了名字叫 logger_b的記錄器,然后在a中導(dǎo)入b模塊時(shí),這時(shí)候日志配置還沒初始化,最后導(dǎo)致logger_b的配置就成了默認(rèn)配置。所以有可能出現(xiàn)日志不生效的情況。

 

因此最佳實(shí)踐是能盡早初始化日志配置就盡早提前。

 

責(zé)任編輯:武曉燕 來源: Python之禪
相關(guān)推薦

2018-11-30 10:54:29

交換機(jī)維護(hù)IT維保

2022-06-02 08:03:19

PyCharmPython代碼

2020-07-16 15:17:32

物聯(lián)網(wǎng)工業(yè)IOT

2021-01-12 10:00:34

流式輸出數(shù)據(jù)

2024-07-01 10:16:55

搜索向量數(shù)據(jù)類型

2022-08-08 08:04:17

Javastatic編程

2012-08-01 14:04:46

Surface

2017-09-20 07:57:38

AWG電纜導(dǎo)線

2020-07-29 07:05:00

DevSecOps

2020-03-25 13:58:00

汽車智能物聯(lián)網(wǎng)

2022-03-14 08:33:09

TypeScriptJavaScript前端

2020-07-03 14:05:26

Serverless云服務(wù)商

2021-11-29 18:27:12

Web Wasmjs

2024-04-24 07:00:00

Redis架構(gòu)數(shù)據(jù)持久化

2023-11-20 22:26:51

Go開發(fā)

2013-09-11 17:02:40

紅帽OpenStack

2021-10-21 05:30:48

Data Fabric數(shù)據(jù)管理架構(gòu)邊緣計(jì)算

2018-01-31 14:50:04

LinuxmacOS .bashrc

2024-10-18 11:55:47

2020-09-15 15:53:31

邊緣計(jì)算云計(jì)算5G
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

午夜福利理论片在线观看| 最好看的中文字幕| 欧美一级视频免费| 欧美91大片| 欧美一a一片一级一片| 欧美精品一区二区三区在线看午夜 | 免费大片在线观看| 天堂91在线| 亚洲男女自偷自拍| 亚洲人成网站777色婷婷| 成人在线看视频| 欧美91精品久久久久国产性生爱| 国产精品视区| 亚洲男人av在线| 国产视频一区二区三区在线播放| 国产福利电影在线| 狠狠色狠狠色综合| 欧美日本中文字幕| 国产69视频在线观看| 日本蜜桃在线观看视频| 久久女同精品一区二区| 国产精品美女在线| 日韩精品一区二区三区在线视频| 久久99成人| 亚洲成人自拍一区| 免费一区二区三区在在线视频| 9i精品福利一区二区三区| 国产欧美日韩视频在线| 欧美日韩成人激情| 日本手机在线视频| 欧美少妇另类| 另类小说一区二区三区| 色综合男人天堂| 国产熟女高潮一区二区三区| 欧美成人黑人| 国产欧美精品区一区二区三区| 国产精品视频久久久久| 久久老司机精品视频| 婷婷亚洲成人| 欧美电影一区二区三区| 国产综合av在线| 在线观看黄av| 成人精品在线视频观看| 8090成年在线看片午夜| 亚洲视频重口味| 成人三级av在线| 欧美中文字幕不卡| 你真棒插曲来救救我在线观看| 第一页在线观看| 精品一区二区三区视频在线观看| 国外成人在线直播| 中国1级黄色片| 亚欧美在线观看| 波多野结衣视频免费观看| 希岛爱理一区二区三区| 7799精品视频| 99福利在线观看| 欧美家庭影院| 欧美激情在线看| 亚洲在线免费看| 中文字幕手机在线视频| 亚洲激情网站| 最近更新的2019中文字幕 | 天堂在线免费av| 久久99精品国产麻豆不卡| 91极品视频在线| 永久免费未视频| 国产一区二区三区91| 日韩午夜精品电影| 中文字幕免费高清在线| 欧美成人免费电影| 精品久久久国产| 国产 国语对白 露脸| 色网站免费在线观看| 久久久亚洲高清| 国产视频一区二区三区四区| 国产女人高潮时对白| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久日一线二线三线suv| 国产精品久久九九| 国产视频www| 国产精品日韩久久久| 色黄久久久久久| 91激情视频在线观看| 青草久久视频| 亚洲精品一区二区精华| 国产性生活毛片| 欧美自拍一区| 亚洲性av在线| 成人性生交大片免费看无遮挡aⅴ| 波多野结衣在线观看一区二区 | 成人高清在线观看视频| 视频一区中文字幕精品| 精品国产凹凸成av人网站| 特级特黄刘亦菲aaa级| 伦理一区二区| 国产亚洲xxx| 久久精品色妇熟妇丰满人妻| 91精品国产91久久久久久黑人| 色综合色综合网色综合| 九一国产在线观看| 日本在线观看不卡视频| 成人免费观看网址| 免费观看黄色av| 99精品久久免费看蜜臀剧情介绍| 日本成人黄色免费看| 老司机av在线免费看| 亚洲一区二区3| 欧美污视频网站| 日日夜夜一区| 亚洲第一男人天堂| 一级片视频免费看| 亚洲一区色图| 97久久久免费福利网址| 中文字幕免费观看视频| 国产成人午夜精品影院观看视频| 久久综合九九| 激情影院在线观看| 福利精品视频在线| 日韩在线一区视频| 欧美国产不卡| www.精品av.com| 日产亚洲一区二区三区| 免费在线观看日韩欧美| 国产精品对白一区二区三区| 成人亚洲性情网站www在线观看| 亚洲男人电影天堂| 男人透女人免费视频| 亚洲欧美日本国产| 这里只有精品久久| 日韩免费一级片| 久久99国产精品久久| 精品国产综合| 成人无遮挡免费网站视频在线观看| 黑人巨大精品欧美一区二区| 无套白嫩进入乌克兰美女| 国产欧美日韩在线观看视频| 97国产一区二区精品久久呦| 国产又黄又爽视频| 99精品国产99久久久久久白柏| 最新欧美日韩亚洲| 亚洲天堂1区| 亚洲第一区中文99精品| 男女性高潮免费网站| 日韩电影在线一区| 国产精品福利视频| a黄色片在线观看| 欧美专区亚洲专区| 亚洲AV无码国产成人久久| 亚洲激情偷拍| 99高清视频有精品视频| 国产黄色在线网站| 欧美日韩激情一区| 亚洲综合欧美综合| 久久一二三四| 精品国产二区在线| 1区2区在线| 精品剧情在线观看| 欧美日韩精品在线观看视频 | 四季av一区二区| 麻豆成人入口| 97成人精品视频在线观看| 国产www视频| 日韩毛片在线免费观看| 国产美女18xxxx免费视频| 欧美自拍偷拍| 国产精品入口免费视频一| 国产在线资源| 91成人在线免费观看| 国产男男chinese网站| 国产精品一区毛片| 蜜桃成人免费视频| 在线观看欧美日韩电影| 亚洲欧美日韩图片| 天干夜夜爽爽日日日日| 久久久久久久久久美女| 国产精品视频黄色| 成人vr资源| 国产精品夜色7777狼人| 色综合久久久久综合一本到桃花网| 欧美日韩一区二区在线观看 | 国产视频亚洲精品| 懂色av蜜臀av粉嫩av分享吧最新章节| 久久综合av免费| 久久人妻精品白浆国产| 日韩精品中文字幕第1页| 成人激情免费在线| 牛牛电影国产一区二区| 亚洲二区在线播放视频| 丰满人妻老熟妇伦人精品| 国产三级精品在线| 亚洲精品久久久久久宅男| 国产精品久久观看| 成人动漫视频在线观看完整版| 日韩三级免费| 日韩精品一区二区三区第95| 精品无码一区二区三区的天堂| 国产精品乱码一区二区三区软件| 午夜免费福利视频在线观看| 激情综合自拍| 欧美国产二区| 欧美xxxx性| 九九精品在线观看| 完全免费av在线播放| 国产成人无码一区二区在线观看| 视频一区二区不卡| 99中文字幕在线观看| 啪啪激情综合网| 国产精品情侣自拍| 岛国片av在线| 一本色道久久综合亚洲精品小说 | 男人草女人视频| 日韩超碰人人爽人人做人人添| 国产精品亚洲一区二区三区| 蜜桃传媒在线观看免费进入| 亚洲人a成www在线影院| 国产草草影院ccyycom| 色综合久久综合网欧美综合网| 天天天天天天天天操| 久久综合色婷婷| 免费成年人高清视频| 亚洲经典三级| 在线视频一区观看| 香蕉一区二区| 91最新在线免费观看| 一区二区电影免费观看| 欧美久久久精品| 国产高清视频在线观看| 欧美精品一区二区高清在线观看| 怡春院在线视频| 亚洲r级在线视频| 艳妇荡乳欲伦69影片| 久久夜色精品国产欧美乱极品| 九色91porny| 秋霞国产午夜精品免费视频| 欧美日韩在线一| 午夜精彩国产免费不卡不顿大片| 偷拍视频一区二区| 西瓜成人精品人成网站| 国产高清一区视频| 成人黄色理论片| 国产精品视频不卡| 不卡福利视频| 97涩涩爰在线观看亚洲| 日本亚洲精品| 亚洲人成电影在线| 熟妇人妻系列aⅴ无码专区友真希| 在线不卡中文字幕播放| 99精品人妻国产毛片| 精品久久久久久电影| 国产午夜激情视频| 亚洲一区中文日韩| 天天综合天天做| 成人免费视频在线观看| 日本高清黄色片| 国产农村妇女毛片精品久久麻豆 | 日韩女优毛片在线| 国产精品久久婷婷| 欧美美女网站色| 亚洲天堂2021av| 欧美综合一区二区| 亚洲欧美一二三区| 91搞黄在线观看| 欧美黄色一级大片| 91国产福利在线| 国产精品无码一区| 欧美视频三区在线播放| 中文字幕第一页在线播放| 欧美在线一区二区三区| 无码人妻丰满熟妇区bbbbxxxx| 色婷婷久久99综合精品jk白丝| 国产www在线| 一本大道久久a久久精品综合| 国产又黄又粗又爽| 91久久香蕉国产日韩欧美9色| 免费污污视频在线观看| 欧美色综合久久| 亚洲图片欧美在线| 69堂国产成人免费视频| 国产免费一区二区三区最新不卡 | 欧美一二三在线| 国产黄色一区二区| 亚洲高清久久久久久| 欧美熟妇乱码在线一区| 亚洲精品国产福利| 精品乱码一区二区三四区视频 | 亚洲女人的天堂| 久久久久久久国产精品毛片| 亚洲午夜av在线| 亚洲男人第一av| 在线精品视频免费观看| 国产精品丝袜黑色高跟鞋| 日韩午夜精品视频| 亚洲欧美综合在线观看| 中文字幕欧美专区| 国产黄大片在线观看画质优化| 久久久久久久久久国产| 在线免费看h| 91精品久久久久久久久久久| 深夜激情久久| 久久riav二区三区| 精品国产中文字幕第一页| www.午夜色| 亚洲美女毛片| 日本爱爱免费视频| 国产激情视频一区二区在线观看| 好吊色视频一区二区三区| 国产网站一区二区| 老湿机69福利| 欧美日韩在线另类| 96日本xxxxxⅹxxx17| 亚洲高清久久网| 美女免费久久| 欧美有码在线观看| 亚洲黑人在线| 久久99精品久久久久子伦| 欧美国产小视频| 999在线观看视频| 久久99精品久久久久久国产越南 | 国产91亚洲精品久久久| 国产精华一区| 成人一二三区| 人妻无码久久一区二区三区免费 | 91av成人在线| aa亚洲一区一区三区| 欧美精品免费观看二区| 欧美成人久久| 九一精品在线观看| 91首页免费视频| 一区视频免费观看| 欧亚洲嫩模精品一区三区| 人妻一区二区三区四区| 日韩在线观看免费| 素人啪啪色综合| 久久精品日韩精品| 激情自拍一区| 亚洲成人激情小说| 1024成人网| 男操女视频网站| 亚洲国产精品人久久电影| 在线中文字幕视频观看| 国产一区红桃视频| 国产精品一在线观看| 欧美日韩国产精品激情在线播放| 国产盗摄女厕一区二区三区 | 亚洲视频在线观看一区| 这里只有精品国产| 亚洲欧美中文字幕在线一区| 福利在线免费视频| 成人18视频| 你懂的成人av| 91aaa精品| 最新久久zyz资源站| 亚洲一区二区色| 在线播放亚洲激情| 666av成人影院在线观看| 久久精品日产第一区二区三区乱码 | 大尺度做爰床戏呻吟舒畅| 亚洲国产视频直播| www三级免费| 欧美老女人性视频| 综合激情久久| 日韩成人手机在线| 高清在线观看日韩| 久久免费公开视频| 日韩精品一区二区三区在线 | 久久99精品久久久久久青青91| av在线成人| 国产一二三四五| 国产乱码字幕精品高清av | 日韩激情电影免费看| 国内精品视频免费| av成人国产| av无码av天天av天天爽| 色综合久久中文字幕综合网| 国产黄在线看| 国产中文字幕日韩| 女人天堂亚洲aⅴ在线观看| 日本特黄在线观看| 亚洲一区二区欧美激情| 日批免费在线观看| 欧洲午夜精品久久久| 精品国产乱码| 污污网站免费看| 亚洲女同一区二区| 天堂在线资源8| 国产成人一区二区三区| 欧美国产美女| 中文在线字幕观看| 黑人巨大精品欧美一区二区三区| 国产视频二区在线观看| 国产精品久久久久久久久男| 91视频一区| 日韩女优在线视频| 日本精品一级二级| 免费在线观看黄色网| 国产精品对白刺激久久久| 久热精品视频| www.xxxx日本| 亚洲国产美女精品久久久久∴|