需要考虑以下开发环境。
少量的python模块,每个模块包含一个或多个类。一个主模块,调用这些类。一个名为logger
的自定义日志记录模块,其中包含一个名为Logger
的类。假设我使用debug
的日志记录级别调用主执行类。我怎样才能使这个日志级别继承到每个其他调用,包括其余的类,这些类中的方法,主模块中的函数等等......
Logger
对象被称为log=Logger(0)
,例如(日志级别是一个int,使用我们在其他脚本中使用的相同语法(shell脚本,而不是python)。
我的最后一张照片是让代码填充log.log_debug('debug message')
和log.log_error('error message')
,但只有在选择了右log_level
时才会实际打印一条消息。如果可能,只需一个
from logger import Logger
在主模块内调用。
感谢您的时间。
==================================
修改
在主执行模块中有一个main()
函数,其中返回带有参数parser.parse_args()
的{{1}}对象,以全局定义(至少是我的意图){{1} }}。有一个默认的--log_level
处理(即,它总是被定义)
我会尝试模拟一个最小的例子
log_level
[*]其中一种方法可能会调用一个log_level
对象,我希望该对象与import argparse
from logfile from Logfile
from logger import Logger
def argument_parser():
parser=argparse.ArgumentParser()
stuff
return parser.parse_args()
def log_file_stuff():
log_file=Logfile()
log_file.methods() [*]
def main():
args=argument_parser()
# Here log_level is defined with args.log_level
global log
log=log(log_level)
log_file_stuff()
main()
函数中定义的对象完全相同问题是我怎么能实现这个?没有日志返回和参数瀑布
答案 0 :(得分:0)
很好地回答我自己的问题......我实际上实现了一个交叉模块变量字典以将其用作设置。这些设置只有log_level
变量子,只有
from main import settings
from logger import Logger
log=Logger(settings['log_level'])
然后我有自定义日志记录类,用户输入log_level
。当然,settings
是使用argparse
构建的,主要是vars(args)
跟随问题中的符号。