zoukankan      html  css  js  c++  java
  • Python 3.0 写日志时出现乱码

    问题描述

    python 3.0启用日志, 在pycharm里打开.log文件时中文都显示乱码.

    根本原因

    默认日志编译用的是GBK, 而python 3.0写程序用的是UTF-8. 所以.log文件中文会出现乱码.

    解决方法

    在日志handle中指定编码表

    def log(logging_type):
        """
        去掉打印在屏幕上的功能
        :param logging_type:
        :return:
        """
        # 传日志用例, 生成日志对象
        logger = logging.getLogger(logging_type)
        # 设置日志级别
        logger.setLevel(settings.LOG_LEVEL)
    
        # # 日志打印到屏幕上
        # ch = logging.StreamHandler()
        # ch.setLevel(settings.LOG_LEVEL)
    
        # 获取文件日志对象及日志文件
        log_file = "%slog\%s" % (settings.BASE_DIR, settings.LOG_TYPES[logging_type])
        # 默认log文件编译用GBK, 这里指定编码utf-8
        fh = logging.FileHandler(log_file, "a", encoding="UTF-8")
        fh.setLevel(settings.LOG_LEVEL)
    
        # 日志格式
        formatter = logging.Formatter("%(asctime)s-%(name)s-%(levelname)s-%(message)s")
    
        # 输出格式
        # ch.setFormatter(formatter)
        fh.setFormatter(formatter)
    
        # 把日志打印到指定的handler
        # logger.addHandler(ch)
        logger.addHandler(fh)
    
        return logger
  • 相关阅读:
    Django-ORM
    深入理解vue 修饰符sync
    PS切图
    用Chrome 浏览器调试移动端网页 chrome://inspect/#devices
    float浮动导致父元素高度坍塌的原因及清除浮动方法
    vue keep-alive
    ES6 箭头函数
    ES6 Module(模块)
    MVC模式 和 MVVM模式
    移动端适配代码
  • 原文地址:https://www.cnblogs.com/cheese320/p/9116982.html
Copyright © 2011-2022 走看看