来自多个python模块的自定义日志记录
任务 我的应用程序中有多个模块的日志设置。所有这些模块都将日志发送到同一个文件 Client.py来自多个python模块的自定义日志记录,python,logging,Python,Logging,任务 我的应用程序中有多个模块的日志设置。所有这些模块都将日志发送到同一个文件 Client.py import logging import Settings import actions1 import actions2 def initLogging(logToConsole=False): global logger logger=Settings.customLogging(Name,Dir,FileName,Level,CmdId,logToConsole) logge
import logging
import Settings
import actions1
import actions2
def initLogging(logToConsole=False):
global logger
logger=Settings.customLogging(Name,Dir,FileName,Level,CmdId,logToConsole)
logger.info("Starting client")
def initActions():
actions.init(logger)
设置.py
import logging
import logging.handlers
def initLogging(name,dir,file,cmdId,logToConsole=false):
logger=logging.getLogger(name)
**setup the logger properties with loglevels, formatting etc**
return logger
动作1.py
def init(plogger):
global logger
logger=plogger
def some_function()
**do something**
logger.info("some text")
我有多个actions1/2/3.py模块,我希望每个操作脚本都有不同的日志记录级别和不同的日志记录格式。我浏览了文档,看到了辅助模块示例,但它没有指定如何在通过这些单独的脚本访问同一个记录器时实现自定义设置
如果您能提供帮助,我们将不胜感激。我可能想在调用init()方法时初始化这些自定义设置,但我目前不知道如何初始化
另外,请忽略这些打字错误。这是一个很长的代码 您可以使用logging模块中的logging.getlogger(name)方法,而不是创建单个全局记录器。 这样您将获得一个记录器对象。现在可以为logger对象设置其他参数 这就是docs所说的: 记录器名称层次结构类似于Python包 层次结构,如果您将记录器组织在 使用推荐结构的每个模块 logging.getLogger(\uuuuuuu name\uuuuuu)。这是因为在一个模块中,\uuuuuu name\uuuu是 Python包命名空间中的模块名称