You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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 くれ対応 我啊")

额外说明

  1. 为什么记事本之前乱码?因为记事本默认用系统本地编码(GBK)打开文件,而你的日志如果用GBK保存,日文等非中文字符会出现编码错误;用UTF-8保存后,记事本会自动识别(或者你可以手动点击记事本右下角的编码选项,选择UTF-8)。
  2. 我补全了logger.setLevel()和logger.addHandler()的代码,这部分你之前没写完,不然日志可能不会正常输出哦。

内容的提问来源于stack exchange,提问作者user9270170

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:49:07