• 【python】logging日志模块写入中文编码错误解决办法


     一、问题:

      使用python的logging模块记录日志,有时会遇到中文编码问题错误。

    二、解决办法:

      在logging.FileHandler(path) 中添加指定编码方式 encoding='utf-8' 即可,logging.FileHandler(path, encoding='utf-8') 。

      示例日志模块代码:

    import logging,sys
    
    filelog = True
    path = r'log.txt'
    
    logger = logging.getLogger('log')
    logger.setLevel(logging.DEBUG)
    
    # 调用模块时,如果错误引用,比如多次调用,每次会添加Handler,造成重复日志,这边每次都移除掉所有的handler,后面在重新添加,可以解决这类问题
    while logger.hasHandlers():
        for i in logger.handlers:
            logger.removeHandler(i)
    
    # file log
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    if filelog:
        fh = logging.FileHandler(path,encoding='utf-8')
        fh.setLevel(logging.DEBUG)
        fh.setFormatter(formatter)
        logger.addHandler(fh)
    
    # console log
    formatter = logging.Formatter('%(message)s')
    ch = logging.StreamHandler(sys.stdout)
    ch.setLevel(logging.DEBUG)
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    
    if __name__ == '__main__':
        logger.info("这是一个测试")
  • 相关阅读:
    OpenCV --- 2.4.8组件结构全解析
    综合博客
    设计模式之适配器模式
    android 面试题
    ANDROID 中设计模式的采用--结构型模式
    技术前线
    八大排序算法
    android 面试题
    Android控件——ViewPager
    Bugly
  • 原文地址:https://www.cnblogs.com/TurboWay/p/9304024.html
Copyright © 2020-2023  润新知