python的日志简单使用
生活随笔
收集整理的這篇文章主要介紹了
python的日志简单使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開始一個項目的時候總是匆匆的寫了代碼,但是有時候會發現一個問題,那就是經常會為一個很長時間才出現一次的bug感到很苦惱,如果沒有及時捕捉的話,那還要浪費很多時間去重現,再糾正,還好python有比較方便的日志供使用,logging模塊
import logging
def getFileLogger(name):logger = logging.getLogger(name)hdlr = logging.FileHandler(name)formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s')hdlr.setFormatter(formatter)logger.addHandler(hdlr)logger.setLevel(LOGLEVEL)logger.disabled = Truereturn logger, hd
def getConsoleLogger(name):logger = logging.getLogger()logger.setLevel(LOGLEVEL)formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s')hd = logging.StreamHandler()hd.setFormatter(formatter)hd.setLevel(LOGLEVEL)logger.disabled = Truereturn logger, hd
這兩個函數都是封裝了logging模塊的,前者為建立一個文件的logging,后者是直接在控制臺輸出,建立一個logging的時候同時要建立一個句柄,也就是hdlr,當程序不需要日志的時候要刪除創建的句柄和釋放logging,這樣避免占用資源或者出現重復的打印,這種現象在多線程打印的日志的時候經常出現,粗心導致,formatter命令可以格式化logging,這樣打印的東西很漂亮和工整,使用的時候就調用這兩個函數直接返回一個可用的logger和句柄,有了日志,就可以在很多必要的地方加上輸出,以防備bug的出現,并且能及時捕捉,及時分析。記性不好,寫在這里,忘了的時候可以查查,節省時間,呵呵
import logging
def getFileLogger(name):logger = logging.getLogger(name)hdlr = logging.FileHandler(name)formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s')hdlr.setFormatter(formatter)logger.addHandler(hdlr)logger.setLevel(LOGLEVEL)logger.disabled = Truereturn logger, hd
def getConsoleLogger(name):logger = logging.getLogger()logger.setLevel(LOGLEVEL)formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s')hd = logging.StreamHandler()hd.setFormatter(formatter)hd.setLevel(LOGLEVEL)logger.disabled = Truereturn logger, hd
這兩個函數都是封裝了logging模塊的,前者為建立一個文件的logging,后者是直接在控制臺輸出,建立一個logging的時候同時要建立一個句柄,也就是hdlr,當程序不需要日志的時候要刪除創建的句柄和釋放logging,這樣避免占用資源或者出現重復的打印,這種現象在多線程打印的日志的時候經常出現,粗心導致,formatter命令可以格式化logging,這樣打印的東西很漂亮和工整,使用的時候就調用這兩個函數直接返回一個可用的logger和句柄,有了日志,就可以在很多必要的地方加上輸出,以防備bug的出現,并且能及時捕捉,及時分析。記性不好,寫在這里,忘了的時候可以查查,節省時間,呵呵
轉載于:https://blog.51cto.com/gmingzhe/163826
總結
以上是生活随笔為你收集整理的python的日志简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新书上架:《Java SE 实践教程》
- 下一篇: Delphi编写事件模型客户端(2)