Python 函数——logging.basicConfig使用

一、日志级别

在记录日志时, 日志消息都会关联一个级别(“级别”本质上是一个非负整数)。系统默认提供了6个级别,它们分别是:

级别

对应的值

CRITICAL

50

ERROR

40

WARNING

30

INFO

20

DEBUG

10

NOTSETT

0

使用时可以给level参数设置日志级别,低于该级别的日志消息将会被忽略

二、basicConfig()函数各参数详解

filename :日志文件的保存路径。如果配置了此参数,将自动创建一个日志文件;
filemode :日志文件的打开模式。 默认值为’a’,表示日志消息以追加的形式添加到日志文件中。如果设为’w’, 那么每次程序启动的时候都会创建一个新的日志文件;
format :设置日志输出格式;
datefmt :定义日期格式;
level :设置日志的级别.对低于该级别的日志消息将被忽略;
stream :设置特定的流用于初始化StreamHandler;

三、format 输出格式详解

    %(levelno)s: 打印日志级别的数值

    %(levelname)s: 打印日志级别名称

    %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]

    %(filename)s: 打印当前执行程序名

    %(funcName)s: 打印日志的当前函数

    %(lineno)d: 打印日志的当前行号

    %(asctime)s: 打印日志的时间

    %(thread)d: 打印线程ID

    %(threadName)s: 打印线程名称

    %(process)d: 打印进程ID

    %(message)s: 打印日志信息

四、具体使用方式

import logging
import datetime

# 得到现在的时间
now = datetime.datetime.now()
# YYYY-MM-DD日期格式
date_now = now.date()

file_name = '日志文件名_' + str(date_now) + '.log'
#设置文件编码格式,避免中文乱码
file = open(file_name, encoding="utf-8", mode="a")
logging.basicConfig(
    stream=file,
    #设定日志记录最低级别
    level=logging.DEBUG,
    datefmt='%Y/%m/%d %H:%M:%S',
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

logging.info('普通日志记录')
logging.warning('告警日志记录')
logging.debug('调试日志记录')

file.close()

五、输出结果

2020/02/23 21:45:58 - root - INFO - 普通日志记录
2020/02/23 21:45:58 - root - WARNING - 告警日志记录
2020/02/23 21:45:58 - root - DEBUG - 调试日志记录

 

### Python 中 `logging.basicConfig` 的功能及用法 #### 基本概念 `logging.basicConfig()` 是 Python 日志模块 (`logging`) 提供的一个方法,用于设置日志系统的默认行为。通过该函数可以指定日志的输出位置、格式化方式以及最低的日志级别。 #### 参数详解 以下是 `basicConfig()` 方法支持的主要参数及其含义: - **filename**: 指定日志消息存储到文件的位置。如果未提供此参数,则日志会打印至标准输出流 (stdout)[^1]。 - **filemode**: 设置打开日志文件的方式,默认为 `'a'`(追加模式)。当希望每次运行程序时覆盖旧日志时可设为 `'w'`。 - **format**: 定义每条日志记录的消息格式字符串。例如:`'%(asctime)s-%(name)s-%(levelname)s-%(message)s'` 表示时间戳、logger 名称、日志等级实际消息内容都会被写入日志中。 - **datefmt**: 可选参数,用来控制日期/时间字段的显示样式。如果不设定它的话,默认采用 ISO8601 时间表示形式。 - **level**: 设定 logger 将处理哪些严重程度以上的事件。有效值包括 DEBUG、INFO、WARNING、ERROR CRITICAL。只有达到或超过所设级别的日志才会被捕获并记录下来。 - **stream**: 如果指定了 filename,则忽略 stream;反之则将日志发送给所提供的 IO 流对象而不是文件系统上的某个具体路径[^2]。 #### 示例代码 下面是一个简单的例子展示如何配置基本的日志环境: ```python import logging # 配置日志基本信息 logging.basicConfig( filename="example.log", filemode="w", format="%(asctime)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", level=logging.DEBUG ) # 创建一些不同类型的日志项 logging.debug("This is a debug message.") logging.info("Informational message here.") logging.warning("Warning: Configurations not found!") logging.error("Error occurred during processing request.") logging.critical("Critical failure! Application terminating...") ``` #### 注意事项 需要注意的是,在某些情况下即使调用了 `basicConfig()` 函数也可能看不到预期效果。这通常是因为其他部分已经初始化过了全局 Logger 实例或者存在第三方库提前设置了它们自己的 handlers 导致冲突等问题发生^。 另外关于编码问题方面,如果你发现最终生成的日志文件里含有乱码现象,请确认源数据本身是否正确无误的同时也要留意操作系统区域设置等因素可能带来的影响[^3]^。 最后一点值得注意的地方在于多次连续调用 `basicConfig()` 不会产生叠加效应而是仅以前一次为准生效除非其间重新创建新的Logger实例才行[^4]^.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值