python-log日志

LOG

1. 日志相關概念

  • 日志
  • 日志的級別
    • 不同的用戶關注不同的程序信息
    • DEBUG
    • INFO
    • NOTICE
    • WARNING
    • ERROR
    • CRITICAL
    • ALERT
    • EMERGENCY
  • IO操作-->不要頻繁操作
  • LOG的作用
    • 調試
    • 了解軟件的運行情況
    • 分析定位問題
  • 日志信息
    • time
    • 地點
    • level
    • 內容
  • 成熟的第三方日志
    • log4j
    • log4php
    • logging

2. logging模塊

  • 日志級別
    • 級別可以自定義
    • DEBUG
    • INFO
    • WARNING
    • ERROR
    • CRITICAL
  • 初始化/寫日志實例需要指定級別, 只有當級別等于或者高于指定的級別才被記錄
  • 使用方式
    • 直接使用logging(封裝了其他組件)

2.1 logging模塊級別的日志

  • 使用以下幾個函數:

    • logging.debug(msg, *args, **kwargs) 創(chuàng)建一條級別為DEBUG的日志記錄
    • logging.info(msg, *args, **kwargs) 創(chuàng)建一條級別為INFO的日志記錄
    • logging.warning(msg, *args, **kwargs) 創(chuàng)建一條級別為WARNING的日志記錄
    • logging.error(msg, *args, **kwargs) 創(chuàng)建一條級別為ERROR的日志記錄
    • logging.critical(msg, *args, **kwargs) 創(chuàng)建一條級別為CRITICAL的日志記錄
    • logging.log(level, *args, **kwargs) 自定義創(chuàng)建一條level級別的日志記錄
    • logging.basicConfig(**kwargs) 對root logger進行一次性配置
  • logging.basicConfig(**kwargs) 對root logger進行一次性配置

    • 只在第一次調用時起作用
    • 不配置logger則使用默認值
      • 輸出: sys.stderr
      • 級別: WARNING
      • 格式: level:log_name:content
  • 案例01,,format的參數自行查詢

  •  import logging
     LOG_FORMAT = "%(asctime)s=====%(levelname)s+++++%(message)s"
     logging.basicConfig(filename="test_log.log", level=logging.DEBUG, format=LOG_FORMAT)
     logging.debug("This is a debug log.")
     logging.info("This is a info log.")
     logging.warning("This is a warning log.")
     logging.error("This is a error log.")
     logging.critical("This is a critical log.")
     # 另一種寫法
     logging.log(logging.DEBUG, "This is a debug log.")
     logging.log(logging.INFO, "This is a info log.")
     logging.log(logging.WARNING, "This is a warning log.")
     logging.log(logging.ERROR, "This is a error log.")
     logging.log(logging.CRITICAL, "This is a critical log.")
    

2.2 logging模塊的處理流程

  • 四大組件
    • 日志器(logger): 產生日志的一個接口
    • 處理器(Handler): 把產生的日志發(fā)送到相應的目的地
    • 過濾器(Filter): 更精細的控制那些日志輸出
    • 格式器(Formatter): 對輸出信息進行格式化
  • logger
    • 產生一個日志
    • 操作
    •   Logger.setLevel()   # 設置日志器將會處理的日志消息的最低級別
        Logger.addHandel() 和 Logger.removeHandler()     # 為該logger對象添加和移除一個Handler對象
        Logger.addFilter() 和 logger.removeFilter()      # 為該logger對象添加和移除一個Filter對象
        Logger.debug:   #產生一條debug級別的日志,同理info,error等
        logger.exception():     # 創(chuàng)建蕾仕于Logger.error的日志消息
        Logger.log():   # 或取一個明確的日志level參數類創(chuàng)建一個日志記錄
      
    • 如何得到一個logger對象
      • 實例化
      • logger.getLogger()
  • Handler
    • 把log發(fā)送到指定位置
    • 方法
      • setLevel
      • setFormat
      • addFilter, removeFilter
    • 不需要直接使用,Handler是基類
    •   logging.StreamHandler   # 將日志消息發(fā)送輸出到Stream,如std.out,std.err或任何file-like對象
        logging.FileHandler     # 將日志消息發(fā)送到磁盤文件,默認情況下文件大小會無限增長
        logging.handlers.RotatingFileHandler    # 將日志消息發(fā)送到磁盤文件,并支持按文件大小切割
        logging.handlers.TimedRotatingFileHandler   # 按文件時間切割
        logging.handlers.HTTPHandler    # 將日志消息以GET或POST的方式發(fā)送給一個HTTP服務器
        logging.handlers.SMTPHandler    # 將日志消息發(fā)送給一個指定的email地址
        logging.NullHandler     #該Handler實例會忽略error messages,通常被想使用logging的library
      
  • Format類
    • 直接實例化
    • 可以繼承Format添加特殊內容
    • 三個參數
      • fmt:
      • datefmt:
      • style:
  • Filter類
    • 可以被Handler和Logger使用
    • 控制傳遞過來的信息的具體內容
    • 案例02
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末衙熔,一起剝皮案震驚了整個濱河市登颓,隨后出現的幾起案子搅荞,更是在濱河造成了極大的恐慌,老刑警劉巖框咙,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咕痛,死亡現場離奇詭異,居然都是意外死亡喇嘱,警方通過查閱死者的電腦和手機茉贡,發(fā)現死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來者铜,“玉大人腔丧,你說我怎么就攤上這事∽餮蹋” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵衣厘,是天一觀的道長错邦。 經常有香客問我,道長倾芝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮路翻,結果婚禮上,老公的妹妹穿的比我還像新娘掉冶。我一直安慰自己,他們只是感情好璧亚,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布狰闪。 她就那樣靜靜地躺著秉撇,像睡著了一般规阀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厉碟,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼铐殃。 笑死域帐,一個胖子當著我的面吹牛帘腹,可吹牛的內容都是我干的贰盗。 我是一名探鬼主播许饿,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼舵盈!你這毒婦竟也來了陋率?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤秽晚,失蹤者是張志新(化名)和其女友劉穎瓦糟,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體赴蝇,經...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡菩浙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劲蜻。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡陆淀,死狀恐怖,靈堂內的尸體忽然破棺而出先嬉,到底是詐尸還是另有隱情轧苫,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布疫蔓,位于F島的核電站含懊,受9級特大地震影響,放射性物質發(fā)生泄漏衅胀。R本人自食惡果不足惜岔乔,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滚躯。 院中可真熱鬧重罪,春花似錦、人聲如沸哀九。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阅束。三九已至呼胚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間息裸,已是汗流浹背姐刁。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帖池,地道東北人盾剩。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像访圃,于是被迫代替她去往敵國和親厨幻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內容

  • From:Python之日志處理(logging模塊) - 云游道士 - 博客園 https://www.cnbl...
    vigny的先生閱讀 2,679評論 3 5
  • 本文翻譯自logging howto 基礎教程 日志是跟蹤軟件運行時發(fā)生事件的一種手段腿时。Python開發(fā)者在代碼中...
    大蟒傳奇閱讀 4,251評論 0 17
  • 人人都有苦衷况脆,事事都有無奈, 晨起暮落是日子批糟,奔波忙碌是人生格了。 快樂在時,好好把握徽鼎; 心不快時盛末,別太難過弹惦。 生活再...
    來生_dccc閱讀 188評論 0 0
  • 說實話肤频,題主作為一個剛從學校里出來的大學生,真的是沒有適應這個角色轉變算墨,雖然公司在這方面有一些培訓宵荒,但那真的是...
    爸爸絕不服輸閱讀 572評論 0 0
  • 改換行為完成 點擊完成不輸入\n
    碼農淏閱讀 266評論 0 0