首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python:有没有一个等同于logging.getLogger(__name__)的解析器在模块之间传递args?

在Python中,可以使用logging模块来记录日志。logging.getLogger(name)是一种常见的用法,它返回一个与当前模块名称相对应的Logger对象,用于在模块中记录日志。

如果要在模块之间传递args,可以使用logging模块的其他功能来实现。一种常见的方法是创建一个自定义的Logger对象,并将args作为参数传递给它。可以使用logging模块的basicConfig()函数来配置Logger对象,设置日志级别、输出格式等。

下面是一个示例代码:

代码语言:txt
复制
import logging

def get_custom_logger(name, args):
    logger = logging.getLogger(name)
    logger.setLevel(logging.DEBUG)
    
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    
    # 创建一个StreamHandler,用于输出到控制台
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)
    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)
    
    # 创建一个FileHandler,用于输出到文件
    file_handler = logging.FileHandler('log.txt')
    file_handler.setLevel(logging.INFO)
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)
    
    # 将args作为额外的信息记录到日志中
    logger.debug('args: %s', args)
    
    return logger

# 在模块A中使用自定义的Logger对象
args = {'param1': 'value1', 'param2': 'value2'}
logger = get_custom_logger(__name__, args)
logger.info('This is a log message')

# 在模块B中使用自定义的Logger对象
args = {'param3': 'value3', 'param4': 'value4'}
logger = get_custom_logger(__name__, args)
logger.warning('This is another log message')

在上面的示例中,我们定义了一个get_custom_logger()函数,它接受模块名称和args作为参数,并返回一个自定义的Logger对象。在函数内部,我们设置了日志级别为DEBUG,并创建了一个StreamHandler和一个FileHandler来分别输出到控制台和文件。我们还将args作为额外的信息记录到日志中。

在模块A和模块B中,我们分别使用get_custom_logger()函数创建了自定义的Logger对象,并记录了不同的日志消息。通过这种方式,我们可以在模块之间传递args,并将其记录到日志中。

请注意,上述示例中的日志记录方式仅供参考,实际使用时可以根据需求进行调整。另外,腾讯云提供了云原生日志服务CLS(Cloud Log Service),可以帮助用户实现日志的收集、存储和分析,详情请参考腾讯云CLS产品介绍:https://cloud.tencent.com/product/cls

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python日志处理模块

(root)) root.warning('my root') loga=logging.getLogger(__name__) # 此处使用模块名称进行定义名字 print (loga,id(loga...(root)) print (root.getEffectiveLevel())#此处打印日志级别 loga=logging.getLogger(__name__) # 此处使用模块名称进行定义名字 loga.warning...(root)) print (root.getEffectiveLevel())#此处打印日志级别 loga=logging.getLogger(__name__) # 此处使用模块名称进行定义名字 loga.info...7 总结: 全局可以设定,但自己模块可以根据自己的情况进行调整和修改 上述用于设置模块和模块对应函数或类的日志级别,通过上述的定义可以确定打印日志的级别和相关的配置情况 向在模块级别的进行配置和修改日志的级别设置...logger的,如果父类没有,则继续寻找父类的,最终找到root,而root的默认设置是WARNING ---- 3 消息传递流程 在某个logger上产生某种级别的消息,首先和logger

60810

我的python学习--第十二天(二)

Python异常处理   Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。...如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。 不管上面执行的怎么样,都要执行finally下面的内容。...只要name相同,返回的logger实例都是同一个而且只有一个,即name和logger实例是一一对应的。这意味着,无需把logger实例在各个模块中传递。...logger的name的命名方式可以表示logger之间的父子关系....和端口 第一个app:表示包含Flask(__name__)对象的模块或包 第二个app:表示实例化Flask(__name__)对象 -D:表示以守护进程运行 3、通过supervisor,一个专门用来管理进程的工具来管理系统的进程

72320
  • 软件测试|Python神器logging,你真的了解吗?

    图片logging 是 python 标准模块,用于记录和处理程序中的日志。功能很强大,官方文档很详细,网上也有大量的说明和教程,但是对很多初次接触的同学来说,存在一些障碍。...这是因为,为了让开发者方便使用,logging 模块提供了一些列模块方法,如 debug,在引入模块后,就可以直接使用。这样开发者就不必关心日志模块的细节,像用 print 一样输出日志。...所以在使用模块方法,logging 其实创建了一个日志对象 —— root logger。也就是 logging.debug 这个调用,实质上是调用 root logger 的日志方法。...通过命令行参数设置不同类型的日志,见代码:import loggingimport argparselogger = logging.getLogger(__name__)def create_args_parse...总结python 为我们提供了很多便利的功能,有些需要真的用到才能有所体会,所以在遇到问题时,需要多研究一下,找到其中的特点和内在的原理或机制,这样就能更好的应用了。

    23620

    Python 学习入门(14)—— logging

    python代码的方式就是在应用的主模块中,构建handler,handler,formatter等对象。而配置文件的方式是将这些对象的依赖关系分离出来放在文件中。...args就是要传给这个类的构造方法的参数,就是一个元组,按照构造方法声明的参数的顺序。...多模块使用logging logging模块保证在同一个python解释器内,多次调用logging.getLogger('log_name')都会返回同一个logger实例,即使是在多个模块的情况下。...只要name相同,返回的logger实例都是同一个而且只有一个,即name和logger实例是一一对应的。这意味着,无需把logger实例在各个模块中传递。...默认为logging.WARNING,child loggers得到消息后,既把消息分发给它的handler处理,也会传递给所有祖先logger处理,来看一个例子: #/usr/bin/python #

    52220

    《颠覆你的 Python 接口自动化测试》04 - Python 操作 MySQL 数据库

    Python 操作 MySQL 操作流程 image 1.先创建数据库连接,与数据库完成连接,使用语句如下: conn = pymysql.connect() 2.创建游标...,游标是用来开拓出一片区域,暂时保存我们所操作的数据,使用语句如下: cur = conn.cursor() 3.在创建的游标下执行SQL,这样就不会影响到数据库的其他内容,使用语句如下: cur.execute...第一个问题:pymysql 模块的导入 python2.x 版本导入的是 MySQLdb 这个模块,而 python3.x 导入的是 pymysql, 百度了下,成功导入了 pymysql 模块...第二个问题:数据库的连接 一开始并不知道怎么使用 MySQL 的本地连接和 Navicat,多方查找和学习后,学会了搭建本地数据库环境,这个解决之后,之前运行一堆报错的代码问题也基本迎刃而解了。...(__name__) logger.exception(e) return False # 查询表中单条数据 def select_one

    1.1K30

    《Python实例》基础之argparse,提供一个友好的接口说明,老大说我做的真好

    提供文档太费时,又写不好,不提供文档吧又不太又好,今天在python中发现了一个参数解析器,完美的解决这个问题,今天讲一下参数解析器的使用,好了,废话蛮多了,开始吧。...1、模块介绍 模块的源码位置 lib/argparse,如果你在代码中使用的不是这个位置,说明你导入错了。...= args['work_dir'][0] old_ext = args['old_ext'][0] print("follow me") 步骤总结: 1、创建一个参数解析器 argparse.ArgumentParser...中调用传参文件 在pycharm 中执行需要参数的文件如果不传递参数会报下面的错误 ?...pycharm 传递参数也很简单,如下图: ? 注:参数之间空格隔开 debug执行结果看下,可以看到已经能获取到输入的三个参数,完美 ?

    67430

    python 多线程那些事

    进行一些更改后,它们也应与Python 2一起运行-urllib是这两个Python版本之间变化最大的地方。 Python多线程入门 让我们首先创建一个名为的Python模块download.py。...在这个Python线程示例中,我们将编写一个新模块来替换single.py。该模块将创建一个由八个线程组成的池,从而使包括主线程在内的总共九个线程成为可能。...这就是Python多线程可以大大提高速度的原因。只要其中一个线程准备执行某些工作,处理器就可以在线程之间切换。在Python或任何其他解释语言中使用带有GIL的线程模块实际上会导致性能降低。...enqueue方法将一个函数作为其第一个参数,然后在实际执行作业时将所有其他参数或关键字参数传递给该函数。 我们需要做的最后一步是启动一些工人。RQ提供了一个方便的脚本来在默认队列上运行工作程序。...该软件包提供了另一种在Python中使用并发和并行性的方法。 在原始文章中,我提到Python的多处理模块比线程模块更容易放入现有代码中。

    78120

    Python开发之日志记录模块:logg

    1 引言 最近在开发一个应用软件,为方便调试和后期维护,在代码中添加了日志,用的是Python内置的logging模块,看了许多博主的博文,颇有所得。不得不说,有许多博主大牛总结得确实很好。...这里只介绍Python的logging模块的日志等级(当然,其他日志系统的日志等级划分事实上也基本相同)。...3.1 记录日志之logging模块级函数 在logging模块中,分别给出一个模块级别函数与上面说到的日志级别相对应,用于输出对应级别日志记录: 函数 说明 logging.debug(msg, *args...在使用logging模块时,系统会自动实例化一个名为root的日志器(根日志器),当未指定name属性时,事实上就是将变量名指向跟日志器 另外,Logger实例具有层级继承的特点,层级之间已“.”连接,...在开发过程中,经常出现多个模块都需要记录日志的情况,也许你想到的做法是在一个模块中配置好一个logger并实例化,在需要用到的模块中进行导入,但如果不同模块的日志器配置有区别时,这种方法就不适用了,若是为每个模块都定义一个

    1.4K20

    【python】函数详解

    文章目录 基本函数-function 模块的引用 模块搜索路径 不定长参数 参数传递 传递元组 传递字典 缺陷,容易改了原始数据,可以用copy()方法避免 变量作用域 全局变量 闭包closure...,更改库名 print(diaoyong) 模块搜索路径 先搜当前文件夹内有没有,再去指定路径找 import sys print(f"sys.path: {sys.path}") ''' ['/Users.../pycharm_matplotlib_backend'] ''' 不定长参数 python自定义函数中有两种不定长参数, 第一种是*XXX,在传入额外的参数时可以不用指明参数名,直接传入参数值即可。...第二种是**XXX,这种类型返回的是字典,传入时需要指定参数名。 加了一个星号 :不定长参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。...def water(name,*args): print(name) for i in args: print(i) if '__main__' == __name__

    34720

    Python日志logging模块使用详解

    前言 每个语言都会有自己的日志模块,Python也不例外。通常情况下当需要使用到日志的时候, 一般都是匆匆查找下资料,按照步骤进行下配置就是完事了,不太会去总结日志模块的使用方式。...使用默认配置记录日志 Python的日志模块是logging,属于Python的标准发行库。如果你只是用于调试程序,又不想用print函数的情况下。...() # 获取的是名为root的Logger Logger.warning('this is warning') Logger = logging.getLogger(__name__)...当然你也可以获取指定名字的Logger。 比如:logging.getLogger('test')则会获取一个名为test的Logger。...Logger2.info('this is info') 总结 到这里关于Python的logging模块的介绍就结束了。

    1.1K40

    一篇文章带你搞定Python中logging模块

    百分之九十的程序都需要提供日志功能。Python内置的logging模块,为我们提供了现成的高效好用的日志解决方案。...但是,不是所有的场景都需要使用logging模块, 下面是Python官方推荐的使用方法:(来源百度) 任务场景 最佳工具 普通情况下,在控制台显示输出 print() 报告正常程序操作过程中发生的事件...将日志写入到文件 设置logging,创建一个FileHandler,并对输出消息的格式进行设置,将其添加到logger,然后将日志写入到指定的文件。...捕获traceback Python中的traceback模块被用于跟踪异常返回信息,可以在logging中记录下traceback. import logging logger = logging.getLogger...二、总结 本文以Pythonl基础为例,主要介绍了logging模块的基础使用方法,以及在现实应用中遇到的问题,进行了详细的解答。

    43330

    python接口自动化(四十)- logger 日志 - 下(超详解)

    简介   按照上一篇的计划,这一篇给小伙伴们讲解一下:(1)多模块使用logging,(2)通过文件配置logging模块,(3)自己封装一个日志(logging)类。...实际开发一个application,首先可以通过logging配置文件编写好这个application所对应的配置,可以生成一个根logger,如'PythonAPP',然后在主函数中通过fileConfig...加载logging配置,接着在application的其他地方、不同的模块中,可以使用根logger的子logger, 如'PythonAPP.Core','PythonAPP.Web'来进行log,而不需要反复的定义和配置各个模块的...''' Created on 2019-5-27 @author: 北京-宏哥 Project:学习和使用python的logging日志模块-多模块使用logging ''' # 3.导入模块 import...''' Created on 2019-5-24 @author: 北京-宏哥 Project:学习和使用python的logging日志模块-多模块使用logging ''' # 3.导入模块 import

    2.6K61

    Python3日志记录模块

    [TOC] 0x00 logging 模块 1.基础简述 描述: Logging 库是非常常用的记录日志库,通过logging模块存储各种格式的日志,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径...模块导入: import logging 模块参考: https://docs.python.org/3/library/logging.html 模块优点 你可以控制消息的级别,过滤掉那些并不重要的消息...通过赋予 logger 或者 handler 不同的级别,你就可以只输出错误消息到特定的记录文件中,或者在调试时只记录调试信息。...简单示例: import logging # 1、创建一个logger logger = logging.getLogger(__name__) # 创建 logger logger.setLevel...原因是:Logger中设置的级别决定它将传递给Handler的消息严重性。

    49430

    Python入门之logging模块

    ============================ 一、logging模块简介  Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。...logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息...名字是以点号分割的命名方式命名的(a.b.c)。对同一个名字的多个调用logging.getLogger()方法会返回同一个logger对象。...2.4 捕获traceback Python中的traceback模块被用于跟踪异常返回的信息,可以在logging中记录下traceback mport logging logger = logging.getLogger...三、通过JSON或者YMAL文件配置logging模块   尽管可以在Python代码中配置logging,但是这样并不够灵活,最好的方法是使用一个配置文件来配置。

    1.1K120

    Python中内置的日志模块logging用法详解

    logging模块简介Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。...初始化 logger = logging.getLogger("endlesscode"),getLogger()方法后面最好加上所要日志记录的模块名字,后面的日志格式中的%(name)s 对应的是这里的模块名字...Handler,常用的是StreamHandler和FileHandler,windows下你可以简单理解为一个是console和文件日志,一个打印在CMD窗口上,一个记录在一个文件上4. formatter...logging模块保证在同一个python解释器内,多次调用logging.getLogger('log_name')都会返回同一个logger实例,即使是在多个模块的情况下。...所以典型的多模块场景下使用logging的方式是在main模块中配置logging,这个配置会作用于多个的子模块,然后在其他模块中直接通过getLogger获取Logger对象即可。

    16.3K41

    python selenium2示例 - 日志管理

    前言 在自动化测试实践过程中,必不可少的就是进行日志管理,方便调试和生产问题追踪,python提供了logging模块来进行日志的管理。...下面我们就logging模块的学习和使用进行一个层层推进演示学习。 Python的logging模块提供了通用的日志系统,可以方便第三方模块或应用使用。...logging模块与java的log4j的机制是一样的,只是具体的语言实现细节有些不同。python logging模块提供了logger、handler、filter、formatter等基础类。...日志配置 在上述所有的示例中,日志的配置都是在代码中实现,但在实际的应用过程中,我们一般都需要动态的配置日志信息,或是满足自定义的需要,下面我们就自定义日志配置进行示例演示: # 定义一个配置文件,这里命名为...,当然了在实际的自动化测试实践中,还需要对logging模块进行更高级的封装以提高其复用性,达成高可用的目的。

    67740
    领券