Python版本3.6
解决方法很简单,
在定义Filehandler时指定encoding就好了
import logging
file_hanlder = logging.FileHandler(filename='example.log', encoding='utf-8')
因为看python的logging.FileHandler()类的代码如下,就知道Filehanlder也支持指定编码格式的了,原代码如下:
class FileHandler(StreamHandler):
A handler class which writes formatted logging records to disk files.
def __init__(self, filename, mode='a', encoding=None, delay=False):
Open the specified file and use it as the stream for logging.
filename = os.fspath(filename)
...
以下是后话(多余的话)
遇到这个问题的时候,求教于百度&Google,网上一致给了这种方法:
import logging.handler
file_handler = logging.handler.BaseRotatingHandler(filename='example.log', mode='a', encoding='utf-8')
试了一下日志文件中并没有日志打印出来。目前也没有好好研究BaseRotatingHandler是干嘛的。。
感悟:遇到问题,第一步尽量先看python原代码。
Python版本3.6 解决方法很简单,在定义Filehandler时指定encoding就好了import loggingfile_hanlder = logging.FileHandler(filename='example.log', encoding='utf-8')因为看python的logging.FileHandler()类的代码如下,就知道Filehanlder也支...
name = name+"登录成功!"
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)
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:
可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;
print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;
3.后来想想把log日志用GBK编码读出来,写到新文件中,用utf-8编码,解决了问题。
以上这篇解决python 读取 log日志的编码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:Python常用模块logging——日志输出功能(示例代码)Python实现从log日志中提取ip的方法【正则提取】Python中用于计算对数的log()方法py
name = name+"登录成功!"
logger = logging.getLogger()
fh = logging.FileHandler("test.log")
formatter = logging.Format...
python 2.7中使用了logging模块记录日志,发现记录中文的中文是乱码,或者报错。经过网上查找后,解决了。
解决办法就是注意以下三点:
1、Python代码文件开头要加上 : # -*- coding: utf-8 -*-
2、加上代码,注意一定要是 gbk
import logging
import sys
reload(sys
paip.日志中文编码原理问题本质解决python
默认的python日志编码仅仅gbk...保存utf8字符错误..输出到个eric5的控制台十默认好像十unicode的,要是有没显示出来的字符,大概十字体问题..调整eric5的字体走ok兰.
#调用封装
from log import *
iniLog (r"c:\enPn2atiEnPh.log")
logx("xx...
Python logging 模块是 Python 标准库中的一个模块,用于记录程序运行时的日志信息。使用 logging 模块可以方便地记录程序的运行状态,以便在出现问题时进行排查。
使用 logging 模块需要先导入模块,然后创建一个 logger 对象,设置日志级别和输出格式,最后在程序中使用 logger 对象记录日志信息。
下面是一个简单的示例代码:
import logging
# 创建 logger 对象
logger = logging.getLogger('mylogger')
# 设置日志级别
logger.setLevel(logging.DEBUG)
# 创建一个输出到控制台的 handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# 创建一个输出到文件的 handler
file_handler = logging.FileHandler('mylog.log')
file_handler.setLevel(logging.INFO)
# 设置输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# 将 handler 添加到 logger 对象中
logger.addHandler(console_handler)
logger.addHandler(file_handler)
# 记录日志信息
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
在上面的示例代码中,我们创建了一个名为 `mylogger` 的 logger 对象,并设置了日志级别为 `DEBUG`。然后创建了一个输出到控制台的 handler 和一个输出到文件的 handler,并设置了输出格式。最后将这两个 handler 添加到 logger 对象中。
在程序中使用 logger 对象记录日志信息时,可以使用 `debug()`、`info()`、`warning()`、`error()`、`critical()` 等方法,分别对应不同的日志级别。例如,`logger.debug('debug message')` 就会记录一条 DEBUG 级别的日志信息。
以上就是 Python logging 模块的基本使用方法。