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

2023-11-19

就不介绍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.

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 多个logger对象使用,输出到多个文件 的相关文章

随机推荐

  • Cygwin安装、使用和软件更新

    http www ibm com developerworks cn aix library au spunix cygwin 幸运的是 Cygwin 见 参考资料 在 Windows 环境中提供大家熟悉的一片天地 就像是美国人在法国找到了
  • AOM、VTM初体验及安装tensorflow

    AOM VTM初体验 文章目录 AOM VTM初体验 Cmake AOM 命令参数 VTM 安装tensorflow Anaconda的快速入门 对比GPU和CPU的计算速度 Cmake cmake的定义是什么 高级编译配置工具 当你用不同
  • 按键的短按和长按检测

    方法一 常用的加延时函数 在中断服务函数中加一个比如10ms的延时函数 延时时间的长短取决于实际所用的按键特性 只要延时时间比抖动时间略大即可 原理很简单 加了延时就避开了抖动的这段时间 在延时之后判断引脚电平 如果为低电平就表示是按下 v
  • Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”

    1 理论介绍 完整标题应该是 当 三角形网格细分后的 Bezier曲面 Utah Teapot 同时遇上 噪声纹理 和 Phong反射模型 其实 就是将 Q97 怎么用三角形网格细分Bezier曲面 以Utah Teapot为例 http
  • 来自网页的消息服务器繁处理忙,EventSource 对象用于接收服务器发送事件通知,是网页自动获取来自服务器的更新...

    客户端代码 if typeof EventSource undefined var source new EventSource api v1 event source source onmessage function event con
  • 巴比特

    摘要 3月15日凌晨 OpenAI在官网上宣告了多模态大模型GPT 4的诞生 GPT 4 实现了以下几个方面的飞跃式提升 强大的识图能力 文字输入限制提升至 2 5 万字 回答准确性显著提高 能够生成歌词 创意文本 实现风格变化 GPT 4
  • python 视频流截图_python3将视频流保存为本地视频文件

    使用python3 opencv3 3 1环境将视频流保存为本地视频文件 具体内容如下 1 利用opencv中的VideoCapture类获取视频流的链接 通过cv2的方法得到该视频流的帧数和每帧大小 2 使用VideoWriter类进行视
  • python中info什么意思_(python版本2.7)为什么我运行代码以后再看info文件夹里什么也没有啊?...

    coding utf8 import requests import re import sys reload sys sys setdefaultencoding utf 8 class spider object def init se
  • docker打包运行中的容器,生成镜像文件保存到本地

    因为想着方便部署 将所有没问题的项目容器打包成镜像 走到哪儿都离线安装自动部署 第一步先把运行中的容器打包成镜像 docker commit 运行中容器id 像打包成的镜像名称 第二步将大象装进冰箱 不好意思说错了 把镜像保存到本地 doc
  • 穷举法解决鸡兔同笼问题 Python实现

    今天学习王晓华老师课程中的穷举法 在此简单用穷举法求解鸡兔同笼问题 import pandas as pd import numpy as np head 50 foot 120 def chick rabbit head foot rab
  • python 赋值/浅拷贝/深拷贝的区别

    在了解赋值 浅拷贝 深拷贝之前 需要预热一下python对象知识点 一 变量名字和对象 a 123 b 1 2 3 代码中 a和b是变量名称 123和 1 2 3 是对象 对象包括值和类型 python中 一切皆对象 对象占内存 内存中存放
  • 5、DML语句(数据操纵语言-增删改查)

    文章目录 一 DML语句介绍 二 insert 增加 插入数据 1 基本语法 2 示例 三 delete 删除表中的某行或者某些行数据 1 基本语法 2 示例 四 update 更新 修改 1 基本语法 2 示例 五 select 查询 1
  • 软件和建筑的结构

    一般都倾向于将软件比作建筑 因为建筑的架构和软件框架类似 好的建筑需要好的框架 但是大家忽略了另外一个情况 一个建筑要能居住 不但要好的建 筑风格和框架 更需要有好的家居和内部装修 建筑居住的舒适度很大程度上由内部装修细节决定的 装修时家居
  • 程序员,职场上请远离这种人!

    对有些职场人来讲 甩锅就是一种生存手段 01 从大学打篮球说起 上大学的时候喜欢打篮球 然后我又特别喜欢抢篮板 经常是跳起来的时候没事 落下来的时候偶尔会踩到别人的脚上 于是左脚经常性崴脚 这是背景 我们班上有一个同学也喜欢打篮球 我俩水平
  • 多媒体透明屏,在户外广告领域中,有哪些应用展示?

    多媒体透明屏是一种新型的显示技术 它能够将图像和视频直接投射到透明的屏幕上 使得观众可以同时看到屏幕后面的实物 这种技术在广告 展览 商场等场合有着广泛的应用前景 多媒体透明屏的原理是利用透明显示技术 将图像和视频通过光学投射技术投射到透明
  • 【C语言初学】作业:计算在贷款第一个月、第二个月、第三个月后需要还款金额

    贷款金额 20000 00元 年贷款利率 6 0 每个月还款金额 386 66 第一个月剩余的需还款金额 19713 34元 第二个月剩余的需还款金额 19425 25元 第三个月剩余的需还款金额 19135 71元 提示 每个月剩余的贷款
  • 深入浅出 sideEffects

    前言 最近在给团队对 webpack 中的 sideEffects 字段用途进行微分享 于是乎 我最后就整理成一篇文章 希望帮助更多的人理解 sideEffects 的作用 sideEffects 是什么呢 我用一句话来概括就是 让 web
  • redis 安装配置

    原文链接 https www cpweb top 1266 一 介绍 Redis 是一个开源的 基于内存的数据结构存储系统 它可以用作数据库 缓存和消息中间件 它是一个键值 Key Value 存储数据库 为非关系型数据库 它支持多种类型的
  • 在el-table的功能,并且在单元格里面加入输入框

    在我们的前端拿到后端返回的数据的时候 需要在el table的功能 并且在单元格里面加入输入框 为了让输入框的输入时候不会影响到其他的输入框 可以使用 input来获取输入框内容的值
  • python 多个logger对象使用,输出到多个文件

    就不介绍logger基础配置了 如何创建多个logger对象 输出到多个文件 import logging from datetime import datetime def get logger name logger logging g