Python 3.0 写日志时出现乱码
2018-05-31 15:27 钱先生 阅读(1962) 评论(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 = "%s\log\%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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步