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

Python日志能否添加Emoji?添加时遇UnicodeEncodeError报错求助

Python日志中添加Emoji的解决办法

当然可以在Python日志报告里加Emoji,你碰到的UnicodeEncodeError是因为日志文件默认用了系统的charmap编码(比如Windows下的cp1252),这种编码不支持大部分Emoji字符,导致写入时编码失败。

解决方法很简单,只要在配置日志时指定UTF-8编码即可,分两种常见场景:

1. 使用basicConfig快速配置日志

直接在basicConfig里加上encoding='utf-8'参数:

import logging

logging.basicConfig(
    filename='usercount.log',
    level=logging.INFO,
    encoding='utf-8',  # 指定UTF-8编码
    format='%(asctime)s - %(levelname)s - %(message)s'
)

logger = logging.getLogger(__name__)
logger.info('-Total count initiated-➕')

2. 使用FileHandler自定义日志配置

如果是手动创建Handler的场景,同样在初始化FileHandler时指定编码:

import logging

# 创建FileHandler并指定UTF-8编码
file_handler = logging.FileHandler('usercount.log', encoding='utf-8')
# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

# 配置logger
logger = logging.getLogger(__name__)
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)

logger.info('-Total count initiated-➕')

设置后,日志文件会以UTF-8编码保存,就能正常写入Emoji字符了。如果控制台输出也想显示Emoji,建议用Windows Terminal这类支持UTF-8的终端,避免系统默认控制台的编码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:01:23