python如何通过自身日志系统读写日志文件

在Python中,可以使用logging模块来实现日志的读写操作。

首先,在代码中引入logging模块:

python 复制代码
import logging

然后,创建一个日志记录器,你可以指定记录器的名称,这样你就可以在代码中通过名称来获取这个日志记录器:

python 复制代码
logger = logging.getLogger('my_logger')

接下来,设置日志级别。常见的日志级别有DEBUGINFOWARNINGERRORCRITICAL。你可以使用setLevel方法来设置日志级别,例如:

python 复制代码
logger.setLevel(logging.DEBUG)

然后,创建一个文件处理器,用于将日志信息写入到文件中。你可以使用FileHandler来创建一个文件处理器,需要指定日志文件的名称:

python 复制代码
file_handler = logging.FileHandler('my_log.log')

接着,设置文件处理器的级别,你可以根据需要设置不同的级别:

python 复制代码
file_handler.setLevel(logging.DEBUG)

然后,创建一个日志格式化器,可以使用Formatter来创建一个格式化器:

python 复制代码
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

接下来,将格式化器添加到文件处理器中:

python 复制代码
file_handler.setFormatter(formatter)

然后,将文件处理器添加到日志记录器中:

python 复制代码
logger.addHandler(file_handler)

现在,你可以使用日志记录器来记录日志了。例如,使用logger.debug方法来记录调试信息:

python 复制代码
logger.debug('This is a debug message')

最后,记得关闭日志记录器:

python 复制代码
logger.removeHandler(file_handler)
file_handler.close()

完整的示例代码如下:

python 复制代码
import logging

# 创建日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

# 创建文件处理器
file_handler = logging.FileHandler('my_log.log')
file_handler.setLevel(logging.DEBUG)

# 创建日志格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 将格式化器添加到文件处理器中
file_handler.setFormatter(formatter)

# 将文件处理器添加到日志记录器中
logger.addHandler(file_handler)

# 记录日志
logger.debug('This is a debug message')

# 关闭日志记录器
logger.removeHandler(file_handler)
file_handler.close()

运行这段代码后,会在当前目录下创建一个名为my_log.log的日志文件,并将日志信息写入其中。

相关推荐
He19550127 分钟前
Go初级之十:错误处理与程序健壮性
开发语言·python·golang
和鲸社区1 小时前
《斯坦福CS336》作业1开源,从0手搓大模型|代码复现+免环境配置
人工智能·python·深度学习·计算机视觉·语言模型·自然语言处理·nlp
豌豆花下猫2 小时前
Python 潮流周刊#118:Python 异步为何不够流行?(摘要)
后端·python·ai
THMAIL2 小时前
深度学习从入门到精通 - LSTM与GRU深度剖析:破解长序列记忆遗忘困境
人工智能·python·深度学习·算法·机器学习·逻辑回归·lstm
wheeldown2 小时前
【数学建模】数据预处理入门:从理论到动手操作
python·数学建模·matlab·python3.11
多打代码3 小时前
2025.09.05 用队列实现栈 & 有效的括号 & 删除字符串中的所有相邻重复项
python·算法
@CLoudbays_Martin113 小时前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php
程序猿炎义3 小时前
【NVIDIA AIQ】自定义函数实践
人工智能·python·学习
THMAIL4 小时前
深度学习从入门到精通 - BERT与预训练模型:NLP领域的核弹级技术详解
人工智能·python·深度学习·自然语言处理·性能优化·bert
nuclear20114 小时前
Python 实现 Markdown 与 Word 高保真互转(含批量转换)
python·word转markdown·markdown转word·word转md·md转word