我用以下代码记录日志,里面有英文,日文和中文。“aaa”是英文。“くれ対応”是日文。“我啊”是中文。
import logging
import datetime
import os
logger = logging.getLogger()
now_date = datetime.datetime.now().strftime('%Y%m%d')
log_file = now_date+".log"
if not os.path.exists("log"):
os.makedirs("log")
formatter = logging.Formatter('%(asctime)s %(levelname)s line:%(lineno)s %(message)s')
file_handler = logging.FileHandler("log"+os.sep+log_file)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
logger.error('aaaくれ対応我啊'.encode('utf-8'))
当我打开记事本时,内容是这样的:
2018-03-20 10:28:46,451 ERROR line:2161 b'aaa\xe3\x81\x8f\xe3\x82\x8c\xe5\xaf\xbe\xe5\xbf\x9c\xe6\x88\x91\xe5\x95\x8a'
我无法理解b'aaa \ xe3 \ x81 \ x8f \ xe3 \ x82 \ x8c \ xe5 \ xaf \ xbe \ xe5 \ xbf \ x9c \ xe6 \ x88 \ x91 \ xe5 \ x95 \ x8a'。 打开记事本时,如何将其变成原始的中文和日文?
答案 0 :(得分:1)
您只需要在文件处理程序中配置编码,而不是自己编码
file_handler = logging.FileHandler("log"+os.sep+log_file,'w', 'utf-8')
删除最后一行的编码
logger.error('aaaくれ対応我啊')