python log日志模块

本文详细描述了一个初始化日志的Python函数,涉及模块导入、日志器创建、等级设置、处理器(控制台和文件)配置、格式化器定义及其实现过程。通过这个函数,开发者可以轻松地在程序中记录和管理日志输出。
摘要由CSDN通过智能技术生成

这段代码是一个初始化日志的函数。它用于设置日志的格式和输出方式。

首先,它导入了必要的模块和库。然后,定义了一个名为`init_logging()`的函数。

在函数内部,它创建了一个日志器对象,并将其等级设置为INFO级别。日志器是用来处理所有的日志记录操作的核心对象。

接下来,它定义了两个处理器:控制台处理器和文件处理器。控制台处理器用于将日志信息输出到控制台,而文件处理器用于将日志信息输出到指定的文件中。文件处理器是通过`TimedRotatingFileHandler`创建的,它可以按一定的时间间隔自动将日志文件进行切割,以便于管理和查看之前的日志记录。

然后,它定义了日志的格式化器。格式化器用于指定日志记录的格式,包括时间、日志级别、日志器名称、打印日志的函数名称、模块名称、代码行数和日志消息等信息。

最后,它将格式化器分别添加到两个处理器中,并将处理器添加到日志器中。这样,当调用日志记录函数(如`logging.info()`)时,日志信息会按照指定的格式输出到控制台和文件中。

如果你想使用这段代码,只需调用`init_logging()`函数即可完成日志的初始化设置。然后,你可以使用`logging.info()`等函数来记录日志。这些日志信息将根据设置的格式输出到控制台和文件中。

# 初始化日志函数

import logging
import app
from logging import handlers

def init_logging():
# 1 创建一个日志器:如果不写日志器的名称,那么会使用默认的日志器root
    logger = logging.getLogger()
    # 2 设置日志的等级:控制打印日志的级别,使用logging打印日志时,如果
    # 日志级别低于设置的级别,那么不会打印日志
    logger.setLevel(logging.INFO)
    # 3 设置处理器
    # 控制台处理器:控制把日志输出到控制台
    sf = logging.StreamHandler()
    # 文件处理器:控制把日志输出到外部文件当中,需要提前定义文件的路径和文件名称
    logname = app.BASE_DIR + "/log/ego.log"
    fh = logging.handlers.TimedRotatingFileHandler(logname,when='M', interval=1,backupCount=7, encoding='utf-8')
    # 4 设置格式化器:指打印日志时的格式内容(日志器名称、打印日志的函数名称、模块名称、代码行数、日志消息等内容)
    fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
    formmater = logging.Formatter(fmt)
    # 5 将格式化器添加到处理器当中(文件处理器和控制台处理器都要添加)
    sf.setFormatter(formmater)
    fh.setFormatter(formmater)
    # 6 将处理器添加到日志器当中
    logger.addHandler(sf)
    logger.addHandler(fh)

# init_logging()
# logging.info("在utis中,测试日志会不会打印")

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值