Python使用logging模块来输出日志

admin Python评论203字数 1646阅读模式

你可以使用Python的logging模块来输出日志并写入到txt文本中。

首先,你需要导入logging模块:

import logging

然后,你可以配置logging的设置,如设置日志级别、日志输出格式等:

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s',
                    filename='output.log',
                    filemode='w')

在上述代码中,`level`参数表示设置日志级别,可以使用`DEBUG`、`INFO`、`WARNING`、`ERROR`、`CRITICAL`等级别,这里设置为`DEBUG`表示输出所有级别的日志。`format`参数表示日志输出的格式,`%(asctime)s`表示输出时间,`%(levelname)s`表示日志级别,`%(message)s`表示日志内容。`filename`参数表示日志文件的名称,这里设置为`output.log`。`filemode`参数表示打开文件的模式,这里设置为`w`表示写入模式。

接下来,你就可以使用logging来输出日志并写入到txt文本中了。例如:

logging.debug('这是一条调试信息')
logging.info('这是一条普通信息')
logging.warning('这是一条警告信息')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')

以上代码将会把日志信息写入到`output.log`文件中。每条日志信息占据一行,并根据设置的格式进行输出。

如何限制日志数量

在 Python 中,使用标准库中的 logging 模块进行日志记录。要限制日志数量,可以结合使用 RotatingFileHandler 和设置最大日志文件数来实现。

下面是一个示例代码,展示了如何使用 logging 模块限制日志文件的数量:

import logging
import logging.handlers

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

# 创建 RotatingFileHandler,并设置最大日志文件数量为3
handler = logging.handlers.RotatingFileHandler('my_logs.log', maxBytes=1024, backupCount=3)
logger.addHandler(handler)

# 设置日志记录格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# 添加日志记录
logger.debug('Debug message')
logger.info('Info message')
logger.warning('Warning message')
logger.error('Error message')

在上述代码中,RotatingFileHandler 用于将日志写入到文件中,并提供了控制日志文件数量的功能。通过 maxBytes 参数,可以设置单个日志文件的最大尺寸(单位为字节),当达到这个大小时,会自动触发日志滚动,将旧的日志文件备份并创建新的日志文件。通过 backupCount 参数,可以设置保留的日志文件数量。当超过这个数量时,最早的日志文件将被删除。

在上述示例中,创建了一个最大尺寸为 1024 字节(1KB),最多保留 3 个日志文件的 RotatingFileHandler。你可以根据实际需求来调整这些设置。

使用上述代码,每次运行都会将日志信息记录到 my_logs.log 文件中,并限制日志文件数量不超过 3 个。当达到数量限制时,最早的日志文件将被删除。

 

下载信息 限制日志数量示例
最近更新2023-10-16
下载地址

版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
admin
  • 本文由 发表于 2023年10月16日 17:58:51
  • 转载请务必保留本文链接:https://www.58pxe.com/11120.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: