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
相关产品推荐
相关产品推荐

