Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自多个python模块的自定义日志记录_Python_Logging - Fatal编程技术网

来自多个python模块的自定义日志记录

来自多个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

任务

我的应用程序中有多个模块的日志设置。所有这些模块都将日志发送到同一个文件

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)
  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包命名空间中的模块名称