Python多语言日志记录,记事本打开无法识别内容求助
解决Python日志多语言乱码(记事本无法识别)的问题
嘿,这个问题我碰到过!原因很简单:你用的FileHandler默认采用了系统的本地编码(Windows上一般是GBK),但你的日志里包含英文、日文和中文这种多语言内容,必须用UTF-8编码来保存,才能让记事本正确解析。
修正后的完整代码
我把你的代码补全并加上了编码设置,关键就是在创建FileHandler时指定encoding='utf-8':
import logging import datetime import os logger = logging.getLogger() logger.setLevel(logging.INFO) # 记得设置日志级别,不然可能不会输出日志 now_date = datetime.datetime.now().strftime('%Y%m%d') log_file = now_date + ".log" log_dir = "log" if not os.path.exists(log_dir): os.makedirs(log_dir) formatter = logging.Formatter('%(asctime)s %(levelname)s line:%(lineno)s %(message)s') # 关键修改:添加encoding='utf-8'参数 file_handler = logging.FileHandler(os.path.join(log_dir, log_file), encoding='utf-8') file_handler.setFormatter(formatter) logger.addHandler(file_handler) # 测试输出多语言日志 logger.info("aaa くれ対応 我啊")
额外说明
- 为什么记事本之前乱码?因为记事本默认用系统本地编码(GBK)打开文件,而你的日志如果用GBK保存,日文等非中文字符会出现编码错误;用UTF-8保存后,记事本会自动识别(或者你可以手动点击记事本右下角的编码选项,选择UTF-8)。
- 我补全了
logger.setLevel()和logger.addHandler()的代码,这部分你之前没写完,不然日志可能不会正常输出哦。
内容的提问来源于stack exchange,提问作者user9270170
相关产品推荐
相关产品推荐

