python中l(wèi)ogging的理解

基本介紹

  1. 語言環(huán)境:python3.9
  2. 文章大意:簡要的寫一下關于python中l(wèi)ogging模塊的理解
  3. 官方文檔鏈接:
    1. logging — Logging facility for Python — Python 3.10.1 documentation
    2. logging.config — Logging configuration — Python 3.10.1 documentation
    3. logging.handlers — Logging handlers — Python 3.10.1 documentation
    4. Logging HOWTO — Python 3.10.1 documentation
    5. Logging Cookbook — Python 3.10.1 documentation戒傻,

概念介紹

logging中有四個主要概念logger(記錄器)笛园、handler(處理器)颇玷、filter(過濾器)和formatter(格式器)

前三者的關系不是等價的丰涉,而是logger可以包含filter企垦,handler也可以包含filter

  1. 先思考一下,假如我們現(xiàn)在想做一個日志功能需要怎么做呢涯保?
    1. 代碼報錯的時候诉濒,我們要打印一條日志消息,那么需要一個類去拿到這條消息(記錄器)
    2. 日志消息有很多種夕春,可能是重大報錯了未荒,也可能只是執(zhí)行成功的一條確認消息
    3. 那我們就應該分級別,如DEBUG及志,INFO片排,WARNING,ERROR等
    4. 然后經(jīng)過一系列過濾之后(過濾器)速侈,這條消息是不是得拿去處理率寡?
    5. 處理什么呢?比如我們可以把它寫到文件里倚搬,也可以寫到控制臺上
    6. 最后一個問題冶共,我們決定寫到文件里了,可是怎么寫呢每界?
    7. 我們就需要定義一個輸出的規(guī)范(格式器)比默,比如第一列表示時間,第二列表示嚴不嚴重
  2. 這么一想盆犁,是不是logging沒有想象中那么難了命咐?接下來看一下常見的配置
    1. 不用去看懂每一句,先看清楚結(jié)構(gòu)
    2. LOGGING這個字典里一共有4個key
    3. version代表架構(gòu)版本谐岁,不用理解太深醋奠,反正目前都是1
    4. formatter應該很好理解,給處理器(handler)用的伊佃,讓處理器可以根據(jù)這個格式進行輸出
    5. 先看記錄器(logger)窜司,先想一想為什么要用my_project_name命名呢?只定義這兩個記錄器夠嗎航揉?我們可是有成百上前的項目文件的塞祈,為什么就用一兩個記錄器就可以了?
    6. 比如某一個文件為my_project_name.my_package.my_file.py帅涂,代表在項目下的包里的一個文件议薪,我們在這個文件使用記錄器的時候,一般代碼為logger = logging.getLogger(__name__)媳友,以這個文件名為一個記錄器
    7. 但是我們沒有配置這個名字的記錄器(如果一個文件配置一個記錄器斯议,很累的對不對?)醇锚,它就會默認找上級哼御,比如找my_project_name.my_package,或者my_project_name,當?shù)絤y_project_name的時候就找到了恋昼,如下面的代碼里可以看到
    8. 經(jīng)過level和可能會有的過濾器后看靠,他就要發(fā)送給handler了,下面可以看到是發(fā)給兩個液肌,分別為console和file挟炬,然后接下來會發(fā)生什么
    9. console的處理器猜一猜都覺得是輸出到控制臺,那file呢矩屁?
    10. 可以看到有個filename的key辟宗,我們終于找到日志要輸出到哪了爵赵,就是在項目根目錄下的一個名為my_project_name.log的文件吝秕,然后用formatter去格式化那個輸出的格式
    11. 至此,流程就串通起來了空幻,一條日志記錄就誕生了
LOGGING = {
    'version': 1,
    'formatters': {
        'default': {
            'format': '%(levelname)s %(asctime)s %(module)s %(message)s'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'default',
        },
        'file': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'formatter': 'default',
            'filename': BASE_DIR / 'my_project_name.log',
            'backupCount': 5,
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'formatter': 'default',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'file'],
            'level': 'ERROR',
        },
        'my_project_name': {
            'handlers': ['console', 'file'],
            'level': 'DEBUG',
        },
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烁峭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秕铛,更是在濱河造成了極大的恐慌约郁,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件但两,死亡現(xiàn)場離奇詭異鬓梅,居然都是意外死亡,警方通過查閱死者的電腦和手機谨湘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門绽快,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人紧阔,你說我怎么就攤上這事坊罢。” “怎么了擅耽?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵活孩,是天一觀的道長。 經(jīng)常有香客問我乖仇,道長憾儒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任乃沙,我火速辦了婚禮航夺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘崔涂。我一直安慰自己阳掐,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缭保,像睡著了一般汛闸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艺骂,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天诸老,我揣著相機與錄音,去河邊找鬼钳恕。 笑死别伏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的忧额。 我是一名探鬼主播厘肮,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼睦番!你這毒婦竟也來了类茂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤托嚣,失蹤者是張志新(化名)和其女友劉穎巩检,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體示启,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡兢哭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了夫嗓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迟螺。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖啤月,靈堂內(nèi)的尸體忽然破棺而出煮仇,到底是詐尸還是另有隱情,我是刑警寧澤谎仲,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布浙垫,位于F島的核電站,受9級特大地震影響郑诺,放射性物質(zhì)發(fā)生泄漏夹姥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一辙诞、第九天 我趴在偏房一處隱蔽的房頂上張望辙售。 院中可真熱鬧,春花似錦飞涂、人聲如沸旦部。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽士八。三九已至容燕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間婚度,已是汗流浹背蘸秘。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝗茁,地道東北人醋虏。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像哮翘,于是被迫代替她去往敵國和親颈嚼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容