python (logging) 日志按日期、大小回滚的操作

下面是 Python 日志按日期、大小回滚的操作的完整攻略。

一、使用 logging 模块配置日志

在 Python 中,通常使用 logging 模块来记录日志。首先,我们需要通过 logging.basicConfig() 方法配置 logging 模块,以便在后续使用中直接调用。具体配置方式如下:

import logging

logging.basicConfig(filename='myapp.log', level=logging.INFO)

以上代码将设置日志存储路径为 myapp.log,并将日志的输出级别设置为 INFO。输出级别详细如下:

  • logging.CRITICAL 50
  • logging.ERROR 40
  • logging.WARNING 30
  • logging.INFO 20
  • logging.DEBUG 10
  • logging.NOTSET 0

二、按日期回滚日志

日志按日期回滚,一般有两种方式:

  1. 分割日志文件

代码示例:

import logging
from logging.handlers import TimedRotatingFileHandler

log_filename = "app.log"
logger = logging.getLogger("app_logger")
logger.setLevel(logging.INFO)

handler = TimedRotatingFileHandler(filename=log_filename, when="d", interval=1, backupCount=7)
handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(levelname)s - %(module)s - %(message)s"))

logger.addHandler(handler)

logger.info("This is a info message.")

在以上代码中,我们首先设置了日志存储文件名 app.log,代码分别如下:

log_filename = "app.log"

接下来,我们设置了 logging 模块的日志级别为 INFO(20),代码如下:

logger.setLevel(logging.INFO)

通过 TimedRotatingFileHandler 类设置日志的切割格式,代码如下:

handler = TimedRotatingFileHandler(filename=log_filename, when="d", interval=1, backupCount=7)

when 参数中,我们设置了按日切割日志文件。另外,多了一个 backupCount 参数,表示保留最近 7 个日志文件,其余日志将被删除。

  1. 使用日志回滚模块

代码示例:

import logging
import logging.handlers

logger = logging.getLogger("app_logger")
logger.setLevel(logging.INFO)
handler = logging.handlers.TimedRotatingFileHandler(
    filename="myapp.log",
    when="D",
    interval=1,
    backupCount=7
)
logger.addHandler(handler)

logger.info("This is a info message.")

在以上代码中,我们首先设置了日志存储文件名 myapp.log,代码分别如下:

handler = logging.handlers.TimedRotatingFileHandler(
    filename="myapp.log",
    when="D",
    interval=1,
    backupCount=7
)

接下来,我们设置了 logging 模块的日志级别为 INFO(20),代码如下:

logger.setLevel(logging.INFO)

通过 TimedRotatingFileHandler 类设置日志的切割格式,代码如下:

handler = logging.handlers.TimedRotatingFileHandler(
    filename="myapp.log",
    when="D",
    interval=1,
    backupCount=7
)

when 参数中,我们同样设置了按日切割日志文件。另外,backupCount 参数表示保留最近 7 个日志文件,其余日志将被删除。

三、按文件大小回滚日志

日志按文件大小回滚,也有两种方式:

  1. 分割日志文件

代码示例:

import logging
from logging.handlers import RotatingFileHandler

log_filename = "app.log"
logger = logging.getLogger("app_logger")
logger.setLevel(logging.INFO)

handler = RotatingFileHandler(filename=log_filename, maxBytes=1024*1024, backupCount=7)
handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(levelname)s - %(module)s - %(message)s"))

logger.addHandler(handler)

logger.info("This is a info message.")

在以上代码中,我们首先设置了日志存储文件名 app.log,代码分别如下:

log_filename = "app.log"

接下来,我们设置了 logging 模块的日志级别为 INFO(20),代码如下:

logger.setLevel(logging.INFO)

然后,我们通过 RotatingFileHandler 类设置日志的切割格式。maxBytes 参数指定了单个日志文件的最大大小,单位为字节;backupCount 参数指定了保存的日志文件数目。当日志文件大小达到 maxBytes 参数时,会按照 backupCount 参数的数目进行备份,代码如下:

handler = RotatingFileHandler(filename=log_filename, maxBytes=1024*1024, backupCount=7)
  1. 使用日志回滚模块

代码示例:

import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger("app_logger")
logger.setLevel(logging.INFO)

handler = RotatingFileHandler(
    filename="myapp.log",
    mode="a",
    maxBytes=1024,
    backupCount=7,
    encoding="utf-8"
)
logger.addHandler(handler)

logger.info("This is a info message.")

在以上代码中,我们首先设置了日志存储文件名 myapp.log,代码分别如下:

handler = RotatingFileHandler(
    filename="myapp.log",
    mode="a",
    maxBytes=1024,
    backupCount=7,
    encoding="utf-8"
)

接下来,我们设置了 logging 模块的日志级别为 INFO(20),代码如下:

logger.setLevel(logging.INFO)

然后,我们通过 RotatingFileHandler 类设置日志的切割格式。maxBytes 参数指定了单个日志文件的最大大小,单位为字节;backupCount 参数指定了保存的日志文件数目。当日志文件大小达到 maxBytes 参数时,会按照 backupCount 参数的数目进行备份,代码如下:

handler = RotatingFileHandler(
    filename="myapp.log",
    mode="a",
    maxBytes=1024,
    backupCount=7,
    encoding="utf-8"
)

以上为按日期、文件大小回滚日志的 Python 实现攻略。如果需要进一步了解 logging 模块的更多知识,可以参考 Python 官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python (logging) 日志按日期、大小回滚的操作 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 使用Python进行体育竞技分析(预测球队成绩)

    使用Python进行体育竞技分析(预测球队成绩) 在进行体育竞技分析时,Python是一种被广泛使用的工具。本文将介绍如何使用Python进行体育竞技分析,并预测球队的成绩。 1. 数据收集 为了进行分析,我们需要收集有关球队的数据。这些数据可以来自于不同的来源,如官方统计数据、第三方数据提供商等。 示例1:使用Python代码从官方统计数据中收集球队数据 …

    python 2023年6月6日
    00
  • python2和python3在处理字符串上的区别详解

    以下是关于 Python 2 和 Python 3 在处理字符串上的区别的完整攻略: 问题描述 Python 2 和 Python 3 在处理字符串上有很大区别。在 Python 2 中,字符串默认为 ASCII 编码,而 Python 3 中,字符串默认为 Unicode 编码。这个问题可能会导致在 Python 2 和 Python 3 中处理字符串时出…

    python 2023年5月13日
    00
  • 有没有办法指定在 python 2.7 的 unicode 编码中使用哪种 Unicode 格式?

    【问题标题】:Is there a way to specify which Unicode format is used in unicode encoding in python 2.7?有没有办法指定在 python 2.7 的 unicode 编码中使用哪种 Unicode 格式? 【发布时间】:2023-04-02 10:39:01 【问题描述】:…

    Python开发 2023年4月8日
    00
  • 详解用Python创建透明的png图片 – pillow

    下面是使用 Python 中的 Pillow 库来创建透明 PNG 图片的完整攻略: 环境准备 在开始之前,需要确保已经安装了 Pillow 库。如果还没有安装,请通过以下命令安装: pip install pillow 创建透明 PNG 图片 创建透明的 PNG 图片其实不难,只需要在 Pillow 库中使用 Image 类的 putalpha() 方法即…

    python-answer 2023年3月25日
    00
  • 详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案

    详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案 安装pip镜像 首先,我们需要安装pip的镜像源,这会极大地提升我们安装第三方库的效率。以清华大学镜像源为例,我们可以使用以下命令安装: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 使用pip安装第三方库 安装了p…

    python 2023年5月14日
    00
  • Python加载文件内容的两种实现方式

    当我们需要在Python代码中加载文件内容时,通常有两种方法来实现。 1. 使用with语句读取文件 使用with语句读取文件是一种常用的方法,它可以保证在读取文件结束后,文件会被自动关闭。具体步骤如下: with open(‘sample.txt’, ‘r’) as f: content = f.read() print(content) 上面的代码中,我…

    python 2023年6月3日
    00
  • python运行cmd命令行的3种方法总结

    请看下面的攻略: python运行cmd命令行的3种方法总结 在Python中,有时需要通过CMD或终端来执行一些命令行操作,例如生成一个目录,查看网络连接,克隆一个代码库等,这就需要使用到python运行cmd命令行。本篇文章将介绍3种python运行cmd命令行的方法,并提供相应的示例代码。 方法1:使用os.system函数 这是运行命令的最简单方法,…

    python 2023年6月5日
    00
  • Python产生Gnuplot绘图数据的方法

    Python可以通过Gnuplot绘图库来进行图形绘制,而Gnuplot本身则可以通过读取格式化的数据文件来生成绘图。因此,我们可以在Python中使用Gnuplot来生成数据文件,进而绘制图形。下面是详细的攻略: 准备工作 要使用Python和Gnuplot进行绘图,需要先安装Gnuplot库和相关的Python库。在Ubuntu Linux系统上,可以使…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部