python 多个logger对象使用,输出到多个文件

就不介绍logger基础配置了

如何创建多个logger对象,输出到多个文件

import logging
from datetime import datetime


def get_logger(name):
    logger = logging.getLogger(name)
    # 创建一个handler,用于写入日志文件
    filename = f'{datetime.now().date()}_{name}.log'
    fh = logging.FileHandler(filename, mode='w+', encoding='utf-8')
    # 再创建一个handler用于输出到控制台
    ch = logging.StreamHandler()
    # 定义输出格式(可以定义多个输出格式例formatter1,formatter2)
    formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')
    # 定义日志输出层级
    logger.setLevel(logging.DEBUG)
    # 定义控制台输出层级
    # logger.setLevel(logging.DEBUG)
    # 为文件操作符绑定格式(可以绑定多种格式例fh.setFormatter(formatter2))
    fh.setFormatter(formatter)
    # 为控制台操作符绑定格式(可以绑定多种格式例ch.setFormatter(formatter2))
    ch.setFormatter(formatter)
    # 给logger对象绑定文件操作符
    logger.addHandler(fh)
    # 给logger对象绑定文件操作符
    logger.addHandler(ch)
    return logger

if __name__ == "__main__":
    log1 = get_logger('logger1')
    log2 = get_logger('logger2')

    log1.debug("This is a debug log.")
    log1.info("This is a info log.")
    log1.warning("This is a warning log.")
    log1.error("This is a error log.")
    log1.critical("This is a critical log.")

    log2.debug("This is a debug log.")
    log2.info("This is a info log.")
    log2.warning("This is a warning log.")
    log2.error("This is a error log.")
    log2.critical("This is a critical log.")

输出结果:

2022-03-30 17:24:23,129 logger1 DEBUG This is a debug log.
2022-03-30 17:24:23,130 logger1 INFO This is a info log.
2022-03-30 17:24:23,130 logger1 WARNING This is a warning log.
2022-03-30 17:24:23,130 logger1 ERROR This is a error log.
2022-03-30 17:24:23,130 logger1 CRITICAL This is a critical log.
2022-03-30 17:24:23,130 logger2 DEBUG This is a debug log.
2022-03-30 17:24:23,130 logger2 INFO This is a info log.
2022-03-30 17:24:23,131 logger2 WARNING This is a warning log.
2022-03-30 17:24:23,131 logger2 ERROR This is a error log.
2022-03-30 17:24:23,131 logger2 CRITICAL This is a critical log.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值