日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python中的logger之二

發(fā)布時(shí)間:2023/12/15 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中的logger之二 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Rotating-logger

日志文件太大,一般不容易使用。現(xiàn)在的日志系統(tǒng)一般都提供了方便的日志回繞分片。一般有按照文件大小、記錄時(shí)間長(zhǎng)度來(lái)對(duì)日志文件分片。
在python logging中,提供了這2種分片方式。

  • 按照文件大小分片
  • 這種方式使用的Handler是RotatingFileHandler;

    class RotatingFileHandler(BaseRotatingHandler):"""Handler for logging to a set of files, which switches from one fileto the next when the current file reaches a certain size."""def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0):

    下面看看使用方式:

    rlogger = logging.getLogger("loggingtest2") rfh = RotatingFileHandler("log/rtest.log", maxBytes=2000,backupCount=3)formatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S') rfh.setFormatter(formatter)rlogger.addHandler(rfh)

    完整示例:

    import sys,time import logging from logging.handlers import RotatingFileHandler,TimedRotatingFileHandlerrlogger = logging.getLogger("loggingtest2") rfh = RotatingFileHandler("log/rtest.log", maxBytes=2000,backupCount=3)formatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S') rfh.setFormatter(formatter)rlogger.addHandler(rfh)rlogger.setLevel(level = logging.INFO)i = 0 while i<2000:rlogger.info("this is a %s %i.......","info",i)rlogger.warning("this is a %s %i........", "warning",i)i=i+1

    執(zhí)行時(shí),會(huì)在log下生成rtest.log,以及分片的3個(gè)backup文件rtest.log.0, rtest.log.1, rtest.log.2

  • 按照時(shí)間長(zhǎng)度分片
  • 這里使用的是TimedRotatingFileHandler。

    定義如下:

    class TimedRotatingFileHandler(BaseRotatingHandler):"""Handler for logging to a file, rotating the log file at certain timedintervals.If backupCount is > 0, when rollover is done, no more than backupCountfiles are kept - the oldest ones are deleted."""def __init__(self, filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False):

    使用方式:

    formatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S') trlogger = logging.getLogger() trfh = TimedRotatingFileHandler("log/tr_test.log",when="S",interval=5,backupCount=3)trfh.setFormatter(formatter) trlogger.addHandler(trfh)

    完整示例:

    import sys,time import logging from logging.handlers import RotatingFileHandler,TimedRotatingFileHandlerformatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S') trlogger = logging.getLogger() trfh = TimedRotatingFileHandler("log/tr_test.log",when="S",interval=5,backupCount=3)trfh.setFormatter(formatter) trlogger.addHandler(trfh)trlogger.setLevel(level = logging.INFO)i=0 while i < 500:trlogger.info("this is a %s .......","info")trlogger.warning("this is a %s........", "warning")time.sleep(0.5)i=i+1

    總結(jié)

    以上是生活随笔為你收集整理的python中的logger之二的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。