python—日志收集

发布于 更新于
本文目录
  1. 前置条件:
  2. 正式开始正式日志收集流程:
  3. 封装日志收集

技术文章测试开发

一、首先我们要知道日志分别哪几个级别:5个级别

前置条件:

一、首先我们要知道日志分别哪几个级别:5个级别

debug(调试)<info(程序正常运行输出的日志)<warning(警告)<error(错误)<critical(致命错误程序崩溃)

备注:优先级从小到大,也就是说前面一个级别的日志包括后面级别的日志,比如输出debug级别日志包括info,warning,error,critical级别的日志

二、其次我们要考虑日志的格式:

%(name)s : 日志收集渠道的名称 %(levelno)s :日志级别对应的数值 %(levelname)s : 日志级别名称 ("DEBUG", "INFO","WARNING", "ERROR", "CRITICAL") %(pathname)s :输出日志的文件的绝对路径(有.py后缀) %(filename)s :输出日志的py文件的名称(有.py后缀) %(module)s: 输出日志的py文件的名称(没有有.py后缀) %(lineno)d:输出日志的行数 %(funcName)s:输出日志的函数名称,如果不是函数输出,那就输出py文件名称(%(module)s) %(created)f :日志输出的时间,格式为时间戳,time.time() %(asctime)s:日志输出的时间,格式(年-月-日 时:分:秒,毫秒) %(msecs)d :日志输出时间的毫秒 %(relativeCreated)d : 日志输出的相对时间 %(thread)d :输出日志的线程id %(threadName)s :输出日志的线程名称 %(process)d:输出日志的进程id %(message)s :日志内容

备注:按需要去设置

正式开始正式日志收集流程:

先导入日志模块,然后导入渠道方法

  1. 创建日志收集器

  2. 创建日志收集渠道

  3. 创建日志格式

  4. 渠道绑定日志格式

  5. 日志收集器设置日志级别

  6. 给日志收集器绑定渠道

import logging
from logging import handlers

#设置日志收集器
py48 = logging.getLogger("py48")

#设置日志收集渠道
file = handlers.TimedRotatingFileHandler(filename = "py48.log", when='D', interval=1,encoding="utf-8")

#创建日志格式
fmt = "%(asctime)s-%(name)s-%(levelno)s-%(filename)s-%(funcName)s-%(message)s"
file_fmt = logging.Formatter(fmt=fmt)

#渠道绑定日志格式
file.setFormatter(fmt=file_fmt)

#日志收集器设置日志级别
py48.setLevel(level=logging.DEBUG)
file.setLevel(level=logging.INFO)

#给日志收集器绑定渠道
py48.addHandler(file)

py48.debug(msg= "这里是日志信息1")
py48.debug(msg= "这里是日志信息2")
py48.info(msg= "这里是日志信息3")
py48.error(msg= "这里是日志信息4")
py48.critical(msg= "这里是日志信息5")

封装日志收集

import logging
from logging import handlers

def my_log():
    py48 = logging.getLogger(name="py48")  #创建日志收集器
    file = handlers.TimedRotatingFileHandler(filename="text.log", when='D', interval=1, encoding="utf-8")  #创建日志渠道
    fmt = "%(asctime)s-%(name)s-%(levelno)s-%(filename)s-%(funcName)s-%(message)s"
    log_fmt = logging.Formatter(fmt=fmt)  #创建日志格式
    file.setFormatter(fmt=log_fmt)   #给渠道绑定日志格式
    py48.setLevel(level=logging.DEBUG)   #给日志收集器设置日志级别
    file.setLevel(level=logging.INFO)    #给渠道设置日志级别
    py48.addHandler(file)   #给日志收集器绑定渠道
    return py48

logs = my_log()   #实列话方法

logs.info(msg="test01")    #调用
# logs.info(msg="test02")
# logs.info(msg="test03")

备注:封装后,可以直接调用,也方便在其他模块直接导入调用

from demo03 import logs
logs.info(msg="test123")
logs.info(msg="test23")
logs.info(msg="test3")
logs.info(msg="test4")

来源:testingpai

继续阅读