關於python的log日志如何去寫


18.日志(模塊 logging)

  • 基本應用

  • 日志處理本質:Logger/FileHandler/Formatter

    • 推薦處理日志方式

        import logging

      file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
      logging.basicConfig(
         format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
         datefmt='%Y-%m-%d %H:%M:%S %p',
         handlers=[file_handler,],
         level=logging.ERROR
                                      level 默認是ERROR 可以指定level 日志只寫比 ERROR更高等級的 【 info < error < warning <.....】
       

      )

      logging.error('你好')
  • 推薦處理日志方式 + 日志分割

      import time
    import logging
    from logging import handlers
    # file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
    file_handler = handlers.TimedRotatingFileHandler(filename='x3.log', when='s', interval=5, encoding='utf-8')
    logging.basicConfig(
       format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
       datefmt='%Y-%m-%d %H:%M:%S %p',
       handlers=[file_handler,],
       level=logging.ERROR
    )

    for i in range(1,100000):
       time.sleep(1)
       logging.error(str(i))

    注意事項:

      # 在應用日志時,如果想要保留異常的堆棧信息。
    import logging
    import requests

    logging.basicConfig(
       filename='wf.log',
       format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
       datefmt='%Y-%m-%d %H:%M:%S %p',
       level=logging.ERROR
    )

    try:
       requests.get('http://www.xxx.com')
    except Exception as e:
       msg = str(e) # 調用e.__str__方法
       logging.error(msg,exc_info=True)
  • # 單例模式 設計模式
    # 什么是單例模式
    # 單例的應用場景
    # __new__方法 :創建實例的 並且在init之前工作
    # logging模塊
    # 記錄日志的
    # 用戶 :
    # 程序員 :
    # 統計用的
    # 用來做故障排除的 debug
    # 用來記錄錯誤,完成代碼的優化的
    # logging.basicconfig
    # 使用方便
    # 不能實現 編碼問題;不能同時向文件和屏幕上輸出
    # logging.debug,logging.warning
    # logger對象
    # 復雜
    # 創建一個logger對象
    # 創建一個文件操作符
    # 創建一個屏幕操作符
    # 創建一個格式

    # 給logger對象綁定 文件操作符    # 吸星大法
    # 給logger對象綁定 屏幕操作符
    # 給文件操作符 設定格式
    # 給屏幕操作符 設定格式

    # 用logger對象來操作
    # logger = logging.getLogger()

    # fh = logging.FileHandler('log.log')    log信息文件寫入
    # sh = logging.StreamHandler()   log信息屏幕顯示
    # logger.addHandler(fh)        吸星大法
    # logger.addHandler(sh)  吸星大法
    # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    # fh.setFormatter(formatter)
    # sh.setFormatter(formatter)
    # logger.warning('message')

19.項目結構目錄

# **************** 項目結構目錄文件夾 ****************# 6個項目目錄

# bin 可執行文件:程序入口

#config 配置&參數設置

# db 數據&內容

# lib 公共功能

# log 日志代碼

# src 業務代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM