日志模块

一、日志作用:记录程序的执行过程

二、日志要素:

  1、日志渠道:日志的输出位置、文件、控制台

  2、日志级别:info、debug、error......

  3、日志格式:日志的样子,长啥样

  4、日志内容:自己输出的内容,或者是报错信息


三、日志级别:从小到大,下一级别包含上一级别

  debug(代码调试的输出)   

  info(表示程序正常执行的输出)

  warning(不影响程序执行,可以优化的提示)

  error(程序执行报错)

  crcritical(程序存在严重问题)

如何修改root收集器的日志级别:

import logging

logging.basicConfig(logging.DEBUG)  # 修改默认级别为debug级别

四、日志收集器创建

创建:

  1、创建日志收集器:创建和root一样的收集器

  # 第一步,创建日志收集器
  my_log = logging.getLogger("myLog")  # 创建名为myLog的日志收集器

  2、创建日志收集渠道:输出到哪里

  # 第二步,创建日志收集渠道
    file_log = handlers.TimedRotatingFileHandler(filename="python.log",when="D",encoding="utf-8")  # 创建文件渠道
    '''
    filename:日志文件名称,要带路径,默认是当前目录
    when='h':日志滚动周期的单位,有S秒,M分钟,H小时,D天(24小时制),W周,midnigt日切(以凌晨为界线)
    interval=1:日志滚动周期(日志切割周期),其中1代表1个when
    backupCount=0:日志保留的个数
    encoding=None:编码格式
    '''

  3、创建日志的格式:

    fmt = '[%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(lineno)d]: - %(message)s'  # 自定义日志内容
    log_format = logging.Formatter(fmt)  # 创建日志格式

绑定: 

  4、设置日志输出格式  

file_log.setFormatter(log_format)  # 给渠道设置日志输出格式

  5、设置日志级别

my_log.setLevel(logging.INFO)  # 给收集器设置日志级别

  6、收集器绑定渠道

my_log.addHandler(file_log) # 收集器绑定渠道

实现代码:

import logging
from logging import handlers

def auto_log():

    # 第一步,创建日志收集器
    my_log = logging.getLogger("myLog")  # 创建名为myLog的日志收集器

    # 第二步,创建日志收集渠道
    pycharm = logging.StreamHandler()  # 创建日志收集渠道(这里是创建到pycharm控制台)
    file_log = handlers.TimedRotatingFileHandler(filename="python.log",when="D",encoding="utf-8")  # 创建文件渠道
    '''
    filename:日志文件名称,要带路径,默认是当前目录
    when='h':日志滚动周期的单位,有S秒,M分钟,H小时,D天(24小时制),W周,midnigt日切(以凌晨为界线)
    interval=1:日志滚动周期(日志切割周期),其中1代表1个when
    backupCount=0:日志保留的个数
    encoding=None:编码格式
    '''

    fmt = '[%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(lineno)d]: - %(message)s'  # 自定义日志内容
    log_format = logging.Formatter(fmt)  # 创建日志格式

    pycharm.setFormatter(log_format)  # 给渠道设置日志输出格式
    file_log.setFormatter(log_format)

    my_log.setLevel(logging.INFO)  # 给收集器设置日志级别

    my_log.addHandler(pycharm)  # 收集器绑定渠道
    my_log.addHandler(file_log)

    return my_log

# 实例化对象
test_log = auto_log()

test_log.info("test1111")

 

原文地址:https://www.cnblogs.com/nanjo4373977/p/15063981.html