Python-log日志

导入

import logging

创建Logger对象

相当于日志记录工具
my_logger = logging.getLogger(“testcase”)

设置日志器的日志等级

NOTSET(0), DEBUG(10), INFO(20), WARNING(30), ERROR(40), CRITICAL(50)

my_logger.setLevel(“DEBUG”)
my_logger.setLevel(logging.DEBUG)

创建日志输出渠道

控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(“WARNING”)
输出文件
file_handler = logging.FileHandler(“testcase.log”, encoding=“utf-8”)

创建日志的显示样式(格式)

formater = logging.Formatter(’%(asctime)s - [%(levelname)s] - [msg]: %(message)s - %(name)s - %(lineno)d’)

console_handler.setFormatter(formater)
file_handler.setFormatter(formater)、

案例

yaml中相关数据

log:
  logger_level: "DEBUG"
  log_filename: "log_testcase.log"
  path : r"C:\Users\PycharmProjects\pythonProject\frame_test\logs
import logging
import os
from frame_test.scripts.handle_yaml import do_yaml
# 当前文件的上级目录
path_dir = os.path.abspath(os.path.join(os.path.dirname("__file__"), os.path.pardir))

class Handle_log:

    def __init__(self, name=None):
        # 创建logger对象,
        if name is None:
            self.my_logger = logging.getLogger("testcase")
        else:
            self.my_logger = logging.getLogger(name)
        # 设置日志级别
        self.my_logger.setLevel(do_yaml.get_data("log","logger_level"))
        #创建日志出去渠道,控制台输出
        console_handler = logging.StreamHandler()
        console_handler.setLevel("WARNING")
        # 创建日志出去渠道,文本输出
        # file_handler = logging.FileHandler("testcase.log", encoding="utf-8")
        # 设置日志的输出路径
        logname = do_yaml.get_data("log", "log_filename")
        file_path = path_dir+"\\logs\\"+logname

        file_handler = logging.FileHandler(file_path, encoding="utf-8")
        # 4、创建日志的显示样式(格式)并与渠道进行关联
        formater = logging.Formatter('%(asctime)s - [%(levelname)s] - [msg]: %(message)s - %(name)s - %(lineno)d')
        console_handler.setFormatter(formater)
        file_handler.setFormatter(formater)
        # 5、日志器对象与日志输出渠道(展示的地方)进行关联
        self.my_logger.addHandler(console_handler)
        self.my_logger.addHandler(file_handler)

    def get_logger(self):
        return self.my_logger

do_log = Handle_log().get_logger()

if __name__ == '__main__':

    do_log = Handle_log()
    my_logger = do_log.get_logger()
    my_logger.debug("这是一条debug级别的日志!")
    my_logger.info("这是一条info级别的日志!")
    my_logger.warning("这是一条warning级别的日志!")
    my_logger.error("这是一条error级别的日志!")
    my_logger.critical("这是一条critical级别的日志!")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值