创建filehandler的时候指定编码为utf-8
handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes=1024 * 1024, backupCount=5, encoding='utf-8') # 实例化handler
2018-01-18 10:52:44,281 - INFO - ���������һ��
2018-01-18 10:52:44,281 - DEBUG - first debug message
2018-01-18 10:53:42,002 - INFO - ���������һ��
2018-01-18 10:53:42,003 - DEBUG - first debug message
2018-01-18 10:54:54,226 - INFO - ���������һ��
2018-01-18 10:54:54,226 - DEBUG - first debug message
2018-01-18 10:58:10,126 - INFO - 输出中文试一试
2018-01-18 10:58:10,126 - DEBUG - first debug message
2018-01-18 11:28:33,672 - INFO - 输出中文试一试
2018-01-18 11:28:33,672 - DEBUG - first debug message
python3中使用logging模块写日志,中文乱码,如何解决?
https://segmentfault.com/q/1010000010567904/
logging.handlers — Logging handlers
https://docs.python.org/3.6/library/logging.handlers.html
创建filehandler的时候指定编码为utf-8handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes=1024 * 1024, backupCount=5, encoding='utf-8') # 实例化handler2018-01-18 10:52:44,281 - INFO - �������
logger = logging.getLogger()
fh = logging.FileHandler("test.log")
formatter = logging.Formatter("%(asctime)s - %(name)s-%(levelname)s %(message)s")
fh.setFormatter(formatter)
logger.addHandler(fh)
Python-logging报错解决: UnicodeEncodeError: ‘charmap’ codec can’t encode character ‘xxxx’ in position: illegal
这是logging设置未指定编码方式为utf-8引起的,添加handler可以解决。这里以输出到文本文件为例
#需要使用list
handler = [logging.FileHandler(filename=fileName,encoding="utf-8")]
再添加到basicConfig中
3.后来想想把log日志用GBK编码读出来,写到新文件中,用utf-8编码,解决了问题。
以上这篇解决python 读取 log日志的编码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:Python常用模块logging——日志输出功能(示例代码)Python实现从log日志中提取ip的方法【正则提取】Python中用于计算对数的log()方法py
在开发APP过程中经常会打印出网络获取的数据,但这时你会发现打印出来的log是Unicode格式: {"state":{"code":10200,"msg":"\u83b7\u53d6\u6210\u529f"},"data":{}}看不出是什么中文内容,希望下面方法可以帮助大家解决问题。
下面方法在处理时会影响小小性能,见意控制使用! public static String uni
相信很多有强迫症的同学,看到这些很不爽,我也是,接下来我就来说一下解决方案。
二、乱码原因
产生乱码的根本原因就是编码和解码不一致,举个例子就是翻译的人与写文章的人用的不同的语言,我本来写的是中文拼音,结果你去用英语翻译,肯定翻译出来的东西看不懂。
比较常见的编码格式有Unicode、Ascll
Python logging模块是一个强大的日志记录工具,它可以帮助我们记录和输出各种级别的日志信息。以下是使用Python logging模块的步骤:
1. 导入logging模块
```python
import logging
2. 创建一个logger对象
```python
logger = logging.getLogger('mylogger')
3. 设置logger的级别
```python
logger.setLevel(logging.DEBUG)
4. 创建一个文件处理器
```python
fh = logging.FileHandler('mylog.log')
5. 设置文件处理器的级别
```python
fh.setLevel(logging.DEBUG)
6. 创建一个控制台处理器
```python
ch = logging.StreamHandler()
7. 设置控制台处理器的级别
```python
ch.setLevel(logging.DEBUG)
8. 创建一个日志格式化器
```python
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
9. 将日志格式化器添加到文件处理器和控制台处理器中
```python
fh.setFormatter(formatter)
ch.setFormatter(formatter)
10. 将文件处理器和控制台处理器添加到logger中
```python
logger.addHandler(fh)
logger.addHandler(ch)
11. 记录日志信息
```python
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
以上就是使用Python logging模块的步骤,通过这些步骤我们可以方便地记录和输出各种级别的日志信息。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
97795