返回顶部

logging 日志模块

logging(日志模块)

  • 快速编写格式(扩展性不强)

    import logging
    import requests
    
    # 日志配置
    logging.basicConfig(
        filename='log.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:
        mes = str(e)
        # 日志生成
        logging.error(mes, ext_info=True)    #ext_info=True保存堆栈信息
    
  • 推荐编写方式

    import logging
    file_hander = logging.FileHandler(filename='log.log',mode='a',encoding='utf-8',)
    logging.basicConfig(
        format=%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
        datafmt='%Y-%m-%d %H:%M:%S %p',
        handlers=[file_handler,],
        level=logging.ERROR
    )
    
    logging.error('你好')
    
  • 更改调用机制:

    import logging
    
    def get_logger():
        file_hander = logging.FileHandler(filename='log.log',mode='a',encoding='utf-	8',)
        logging.basicConfig(
            format=%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
            datafmt='%Y-%m-%d %H:%M:%S %p',
            handlers=[file_handler,],
            level=logging.ERROR
        )
    	return logging
    logger = get_logger()
    
    
    logging.error('你好')
    
  • 推荐日志处理方式+日志切割

    import time
    import logging
    from logging import handlers
    
    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)
    
posted @   高薪程序员  阅读(123)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示

目录导航