Skip to content

Python的日志模块用于将日志存放到文件中。

logging.basicConfig

参数名作用举例
level日志输出等级level=logging.DEBUG
format日志输出格式
filename存储位置filename='d://back.log'
filemode输入模式filemode='w'

format具体格式

格式符含义
%(levelname)s日志级别名称
%(pathname)s执行程序的路径
%(filename)s执行程序名
%(lineno)d日志的当前行号
%(asctime)s打印日志的时间
%(message)s日志信息

常用格式:

python
format='%(asctime)s %(filename)s %(lineno)d %(levelname)s %(message)s'

案例

日志存放到当前目录下back.log文件中,如果文件存在则使用a模式,如果文件不存在则使用w模式

python
import logging
import os


def init_log(path):
    if os.path.exists(path):
        mode = 'a'
    else:
        mode = 'w'
    logging.basicConfig(
        level=logging.INFO,
        format='%(asctime)s %(filename)s %(lineno)d %(levelname)s %(message)s',
        filename=path,  # 当前目录下back.log文件
        filemode=mode  # 如果文件不存在则使用w,如果文件存在则使用a追加
    )
    return logging


path = os.path.join(os.getcwd(), 'back.log')
log = init_log(path)

log.info('这是第一个记录的日志信息')
log.warning('这是一个警告')
log.error('这是一个重大的错误信息')
log.debug('这是一个debug')

文件内容如下,因为设置为只显示info及以上级别,所以DEBUG级别的日志不显示

python
2023-01-02 10:59:54,541 log.py 24 INFO 这是第一个记录的日志信息
2023-01-02 10:59:54,541 log.py 25 WARNING 这是一个警告
2023-01-02 10:59:54,541 log.py 26 ERROR 这是一个重大的错误信息