<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          logzero—讓python日志輸出更簡單容易的模塊

          共 2827字,需瀏覽 6分鐘

           ·

          2021-10-27 17:58

          logzero是python的一個(gè)日志模塊,它讓日志輸出更加的便捷,使用起來更加高效,而且提供了一些特別小巧且實(shí)用的功能,極大的方便了在項(xiàng)目里處理日志,使用pip安裝


          pip install logzero

          下面詳細(xì)介紹logzero的用法

          1. 在終端根據(jù)日志級別輸出帶有顏色的日志

          在終端輸出日志時(shí),logzero可以根據(jù)日志的級別顯示不同的顏色,方便在查看日志時(shí)區(qū)分

          from logzero import logger

          logger.debug("hello")
          logger.info("info")
          logger.warning("warn")
          logger.error("error")

          終端顯示?

          2. 輸出異常信

          程序在捕獲異常后,如果想在日志里輸出詳細(xì)的異常信息,通常使用traceback模塊的format_exc方法來獲取異常信息,然后在日志中輸出,使用logzero后,就可以省去format_exc方法的調(diào)用過程,一步到位,節(jié)省了代碼

          try:
          raise Exception("this is a demo exception")
          except Exception as e:
          logger.exception(e)

          logzero 提供了一個(gè)exception方法,可以輸出Exception對象的詳細(xì)信息?

          是不是特別方便呢

          3. 輸出json格式的日志

          使用logzero,可以快速的輸出json格式的日志

          import logzero
          from logzero import logger

          logzero.json() # 輸出json格式日志

          def test():
          logger.info("json格式")

          test()

          日志內(nèi)容

          {
          "asctime": "2021-10-18 21:19:41,312",
          "filename": "hello_world.py",
          "funcName": "test",
          "levelname": "INFO",
          "levelno": 20,
          "lineno": 7,
          "module": "hello_world",
          "message": "json格式",
          "name": "logzero_default",
          "pathname": "/Users/kwsy/PycharmProjects/class21/basic/hello_world.py",
          "process": 64653,
          "processName": "MainProcess",
          "threadName": "MainThread"
          }

          日志中的字段是模塊默認(rèn)的,你可以調(diào)用formatter函數(shù)重新調(diào)整這些字段。使用json方法,是為默認(rèn)的logger開啟json格式,此外還可以使用setup_logger(json=True)方法,為你自定義的logger開啟json格式日志輸出

          import logzero
          from logzero import logger, setup_logger


          mylogger = setup_logger(json=True) # 自定義的logger
          mylogger.info("info")

          logger.info("默認(rèn)logger")

          自定義的mylogger是按照json格式輸出日志,而默認(rèn)的logger則使用默認(rèn)格式。

          4. 更方便的輸出到文件中

          import logzero
          from logzero import logger

          logzero.logfile('./main.log', disableStderrLogger=True)
          logger.info("info")

          調(diào)用logfile函數(shù),可以指定日志輸出的文件,disableStderrLogger設(shè)置為True,日志就不會在終端里輸出了。上面的示例是為默認(rèn)logger設(shè)置輸出文件,下面給一個(gè)自定義logger的例子

          import logzero
          from logzero import logger, setup_logger

          sys_logger = setup_logger(name='sys', logfile='./sys.log', level=logzero.INFO, disableStderrLogger=True)
          user_logger = setup_logger(name='user', logfile='./user.log', level=logzero.INFO, disableStderrLogger=True)


          user_logger.info('user info')
          user_logger.warn('user warn')
          user_logger.error('user error')

          sys_logger.info('sys info')
          sys_logger.warn('sys warn')
          sys_logger.error('sys error')

          上面的代碼會生成兩個(gè)日志文件,level設(shè)置為INFO,按照DEBUG < INFO < WARNING < ERROR < CRITICAL的順序,只有大于等于INFO的日志才會被輸出。

          5. 生成rotating 日志

          一旦指定了logfile參數(shù),創(chuàng)建的handler就是RotatingFileHandler類型的,但需要設(shè)置maxBytes參數(shù),否則不會滾動輸出。

          import logzero
          from logzero import logger, setup_logger


          user_logger = setup_logger(name='user', logfile='./user.log',
          level=logzero.INFO, fileLoglevel=logzero.WARN,
          disableStderrLogger=True, maxBytes=60000, backupCount=3)


          user_logger.info('user info')
          user_logger.warn('user warn')
          user_logger.error('user error')

          maxBytes 設(shè)置文件大小,backupCount設(shè)置保留文件個(gè)數(shù),其余的將會被刪除。


          瀏覽 107
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线无码视频 | 4438欧美 | 中文字幕+乱码+中文乱码电影 | 中国大香蕉黄色在线视频 | 青榴网|