欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割的操作代碼

 更新時(shí)間:2020年08月05日 08:43:53   作者:行星帶  
這篇文章主要介紹了Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

日志作為項(xiàng)目開發(fā)和運(yùn)行中必備組件,python提供了內(nèi)置的logging模塊來(lái)完成這個(gè)工作;借助 TimedRotatingFileHandler 可以按日期自動(dòng)分割日志,自動(dòng)保留日志文件數(shù)量等,下面是對(duì)日志的一個(gè)簡(jiǎn)單封裝和測(cè)試。

import logging
import os
from logging import handlers

class Logger(object):
 # 日志級(jí)別關(guān)系映射
 level_relations = {
 'debug': logging.DEBUG,
 'info': logging.INFO,
 'warning': logging.WARNING,
 'error': logging.ERROR,
 'critical': logging.CRITICAL
 }

 def __init__(self,
   filename,
   level='info',
   when='D',
   back_count=3,
   fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):
 f_dir, f_name = os.path.split(filename)
 os.makedirs(f_dir, exist_ok=True) # 當(dāng)前目錄新建log文件夾
 self.logger = logging.getLogger(filename)
 format_str = logging.Formatter(fmt) # 設(shè)置日志格式
 self.logger.setLevel(self.level_relations.get(level)) # 設(shè)置日志級(jí)別
 sh = logging.StreamHandler() # 往屏幕上輸出
 sh.setFormatter(format_str) # 設(shè)置屏幕上顯示的格式
 th = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=back_count,
      encoding='utf-8') # 往文件里寫入指定間隔時(shí)間自動(dòng)生成文件的Handler
 # 實(shí)例化TimedRotatingFileHandler
 # interval是時(shí)間間隔,backupCount是備份文件的個(gè)數(shù),如果超過(guò)這個(gè)個(gè)數(shù),就會(huì)自動(dòng)刪除,when是間隔的時(shí)間單位,單位有以下幾種:
 # S 秒
 # M 分
 # H 小時(shí)
 # D 天
 # 'W0'-'W6' 每星期(interval=0時(shí)代表星期一:W0)
 # midnight 每天凌晨
 th.setFormatter(format_str) # 設(shè)置文件里寫入的格式
 self.logger.addHandler(sh) # 把對(duì)象加到logger里
 self.logger.addHandler(th)

# 測(cè)試
if __name__ == '__main__':
 logger = Logger('./logs/2020/app.log', 'debug', 'S', 5).logger
 logger.debug('debug')
 logger.info('info')
 logger.warning('警告')
 logger.error('報(bào)錯(cuò)')
 logger.critical('嚴(yán)重')

 # 單獨(dú)記錄error
 err_logger = Logger('./logs/2020/error.log', 'error', 'S', 3).logger
 err_logger.error('錯(cuò)誤 error')

為了測(cè)試方便,我們將時(shí)間間隔設(shè)為秒(按秒自動(dòng)命名分割文件),多運(yùn)行幾次后,會(huì)按照配置文件數(shù)量將多余的日志文件自動(dòng)刪除,保留如上圖中的日志文件。

原文鏈接:https://beltxman.com/3195.html,若無(wú)特殊說(shuō)明本站內(nèi)容為行星帶原創(chuàng),未經(jīng)同意禁止轉(zhuǎn)載!

總結(jié)

到此這篇關(guān)于Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割的文章就介紹到這了,更多相關(guān)python logging日志記錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于pycharm?python3.7成功安裝dlib庫(kù)的問(wèn)題

    關(guān)于pycharm?python3.7成功安裝dlib庫(kù)的問(wèn)題

    這篇文章主要介紹了pycharm?python3.7成功安裝dlib庫(kù)的解決方法,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Python時(shí)間戳與日期格式之間相互轉(zhuǎn)化的詳細(xì)教程

    Python時(shí)間戳與日期格式之間相互轉(zhuǎn)化的詳細(xì)教程

    java默認(rèn)精度是毫秒級(jí)別的,生成的時(shí)間戳是13位,而python默認(rèn)是10位的,精度是秒,下面這篇文章主要給大家介紹了關(guān)于Python時(shí)間戳與日期格式之間相互轉(zhuǎn)化的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 童年回憶錄之python版4399吃豆豆小游戲

    童年回憶錄之python版4399吃豆豆小游戲

    相信80,90后都玩過(guò)4399網(wǎng)站的小游戲,雖然游戲很low但是童年的回憶,今天小編帶你一起用python自己寫一個(gè)4399吃豆豆的小游戲,文中給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值
    2021-09-09
  • Python使用socket實(shí)現(xiàn)組播與發(fā)送二進(jìn)制數(shù)據(jù)

    Python使用socket實(shí)現(xiàn)組播與發(fā)送二進(jìn)制數(shù)據(jù)

    在工作中經(jīng)常會(huì)用到socket傳輸數(shù)據(jù),例如客戶端給服務(wù)器發(fā)送數(shù)據(jù)(雙方約定了數(shù)據(jù)格式),本文主要介紹了Python使用socket實(shí)現(xiàn)組播與發(fā)送二進(jìn)制數(shù)據(jù),感興趣的可以了解一下
    2021-06-06
  • Python的爬蟲框架scrapy用21行代碼寫一個(gè)爬蟲

    Python的爬蟲框架scrapy用21行代碼寫一個(gè)爬蟲

    最近在學(xué)習(xí)Python的爬蟲框架scrapy,通過(guò)爬取線報(bào)網(wǎng)站后發(fā)現(xiàn)整個(gè)過(guò)程還是挺值得學(xué)習(xí)的,所以下面這篇文章主要就給大家介紹了Python的爬蟲框架scrapy利用21行代碼寫一個(gè)爬蟲的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • Python如何使用隊(duì)列方式實(shí)現(xiàn)多線程爬蟲

    Python如何使用隊(duì)列方式實(shí)現(xiàn)多線程爬蟲

    這篇文章主要介紹了Python如何使用隊(duì)列方式實(shí)現(xiàn)多線程爬蟲,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Queue隊(duì)列中join()與task_done()的關(guān)系及說(shuō)明

    Queue隊(duì)列中join()與task_done()的關(guān)系及說(shuō)明

    這篇文章主要介紹了Queue隊(duì)列中join()與task_done()的關(guān)系及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python抓取百度查詢結(jié)果的方法

    Python抓取百度查詢結(jié)果的方法

    這篇文章主要介紹了Python抓取百度查詢結(jié)果的方法,涉及Python正則匹配及字符串與URL操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • 在Python中使用swapCase()方法轉(zhuǎn)換大小寫的教程

    在Python中使用swapCase()方法轉(zhuǎn)換大小寫的教程

    這篇文章主要介紹了在Python中使用swapCase()方法轉(zhuǎn)換大小寫的教程,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python如何實(shí)現(xiàn)小程序 無(wú)限求和平均

    Python如何實(shí)現(xiàn)小程序 無(wú)限求和平均

    這篇文章主要介紹了python如何實(shí)現(xiàn)小程序 無(wú)限求和平均,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論