Python logging 控制台输出是乱码怎么解决
时间: 2024-05-16 17:15:10 浏览: 198
Python logging 控制台输出乱码的原因可能是因为控制台字符编码与 logging 的编码不一致。可以尝试以下解决方法:
1. 在程序入口处设置控制台编码:
```python
import sys
import logging
# 设置控制台编码
console_encoding = sys.getfilesystemencoding()
sys.stdout.reconfigure(encoding=console_encoding, errors='backslashreplace')
sys.stderr.reconfigure(encoding=console_encoding, errors='backslashreplace')
# 设置 logging
logging.basicConfig(level=logging.DEBUG)
```
2. 指定 logging 输出编码:
```python
import logging
import sys
# 设置输出编码
console_encoding = sys.getfilesystemencoding()
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] %(message)s'))
handler.setLevel(logging.DEBUG)
handler.stream.encoding = console_encoding
# 设置 logging
logging.basicConfig(level=logging.DEBUG, handlers=[handler])
```
如果以上方法不起作用,可能需要检查系统环境变量中的字符编码设置,确保 logging 和控制台编码一致。
阅读全文