我在Python3 中使用Logging模块把日志打到终端输出时会报错。
代码如下:

import logging
logging.basicConfig(level=logging.INFO,filename='log.log',format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))

报错如下:

--- Logging error ---
Traceback (most recent call last):File "C:\Users\peter\Anaconda3\lib\logging\__init__.py", line 1028, in emitstream.write(msg + self.terminator)
UnicodeEncodeError: 'gbk' codec can't encode character '\u1ecb' in position 582: illegal multibyte sequence
Call stack:File "C:/Users/peter/Documents/GitHub/youtube-spider/youtube-search-spider.py", line 129, in <module>asyncio.get_event_loop().run_until_complete(new_search_page(url=search_url))File "C:\Users\peter\Anaconda3\lib\asyncio\base_events.py", line 566, in run_until_completeself.run_forever()File "C:\Users\peter\Anaconda3\lib\site-packages\nest_asyncio.py", line 71, in run_foreverself._run_once()File "C:\Users\peter\Anaconda3\lib\asyncio\base_events.py", line 1771, in _run_oncehandle._run()File "C:\Users\peter\Anaconda3\lib\site-packages\nest_asyncio.py", line 135, in runctx.run(self._callback, *self._args)File "C:\Users\peter\Anaconda3\lib\asyncio\tasks.py", line 329, in __wakeupself.__step()File "C:\Users\peter\Anaconda3\lib\site-packages\nest_asyncio.py", line 101, in stepstep_orig(task, exc)File "C:\Users\peter\Anaconda3\lib\asyncio\tasks.py", line 249, in __stepresult = coro.send(None)
Message: "counts: 68 names:
Arguments: ()

这是因为终端默认的编码是gbk,不是utf-8,修改代码如下:

sys.stdout.reconfigure(encoding='utf-8')
import logging
logging.basicConfig(level=logging.INFO,filename='log.log',format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))

参考:
unicode - How to set sys.stdout encoding in Python 3? - Stack Overflow
python - python3 logger - UnicodeEncodeError - Stack Overflow
python 3.6 logging modul error UnicodeEncodeError: ‘charmap’ codec can’t encode characters - Stack Overflow
UTF-8 In Python logging, how? - Stack Overflow

Python-logging报错解决:UnicodeEncodeError: 'gbk' codec can't encode character '\u' in position: illegal相关推荐

  1. python 报错:UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xa5‘ in position 65

    print(strhtml.text)报错记录 原因:网页的数据应该是'utf-8'编码,你爬网页的时候会把它转化成Unicode,出问题的是在print()这儿,对于print()这个函数,他需要把 ...

  2. python encoding报错_Python:'gbk' codec can't encode character

    使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character ' ...

  3. 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX

    从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position ...

  4. UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xe7‘ in position 295: illegal multibyte seq

    解决UnicodeEncodeError: 'gbk' codec can't encode character '\xe7' in position 295: illegal multibyte s ...

  5. UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f914' in position ....

    在玩itchat,打印好友信息时报错: UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f914' in position ...

  6. Python报错UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 1919: illegal mult

    with open("a.html", 'w') as f:f.write(html) python在写入文件时报错 UnicodeEncodeError: 'gbk' codec ...

  7. anaconda -spyder报错解决-UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 611: illegal

    此文首发于我的个人博客:anaconda -spyder报错解决-UnicodeDecodeError 'gbk' codec can't decode byte 0x93 in position 6 ...

  8. 解决python UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xb5‘ in position 255: illegal mult

    UnicodeEncodeError: 'gbk' codec can't encode character '\ufffd' in position 373: illegal multibyte s ...

  9. 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f608' in position。。。

    1.问题描述: 爬虫后的网页保存文件的时候,将uft-8的编码写入文档,并输出的时候,出现这了这个报错,说gbk无法编码\U0001f608 UnicodeEncodeError: 'gbk' cod ...

最新文章

  1. 机器学习填坑:你知道模型参数和超参数之间的区别吗?
  2. 优先深度搜索判断曲线相交_程序员必知的十大基础实用算法之-DFS(深度优先搜索)...
  3. Oracle分析函数-keep(dense_rank first/last)
  4. Android开发之android studio快捷键大全
  5. web前端常用知识点
  6. win10开机密码忘记了的解锁教程
  7. Emulator 29.0.4 Canary 发布,Android 模拟器
  8. 数据可视化js框架 d3.js入门
  9. Emacs设置侧边栏目录neotree
  10. VC ODBC使用总结
  11. mysql 为什么mysql设置了密码之后,本地还可以直接访问,不需要输入密码就可以登录数据库了?
  12. Linux下SVN客户端使用教程(全)
  13. abaqus算出来的转角单位是什么_ABAQUS中的单位制是如何规定的
  14. MD5加密算法的原理
  15. Win10 中U盘不识别的解决方法
  16. 如何关闭流氓软件弹窗广告
  17. 《数学之美》读后感与商榷
  18. Java后端工程师学习路线——大学版
  19. 【数据结构】红黑树入门知识
  20. 微信小程序实现一个简单的加减法的计算器

热门文章

  1. B1054 求平均值 (20 分)
  2. RDKit | 可视化官能团, 分子聚类, 相似图, 化合物高亮和骨架网络
  3. Python XML的解析与创建
  4. 罹患各种癌晚期,无法救治
  5. Android 中几个常用的分析工具的下载地址
  6. Python Excel 操作 | xlrd+xlwt 模块笔记
  7. NAR:测序数据鉴别和去除rRNA序列利器RiboDetector
  8. Microbiome:地球上有多大比例的原核生物已经被测序了基因组?
  9. 蚊子已经很可怕了,而这些吸血昆虫能让你感受真正的恐惧
  10. seaborn可视化散点图并自定义数据轴标签(X轴和Y轴的轴标签,Change X Y Axis Labels to a Seaborn Plot)