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

2024-03-28 08:50:19 发布

您现在位置:Python中文网/ 问答频道 /正文

任务

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

你知道吗客户端.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()方法时初始化这些自定义设置,但我目前不知道如何初始化。你知道吗

另外,请忽略输入错误。这是一个很长的代码。你知道吗


Tags: 模块namepyimportinfosettingsinitlogging
1条回答
网友
1楼 · 发布于 2024-03-28 08:50:19

您可以使用日志记录.getlogger(name)方法。 这样您将得到一个logger对象。现在可以为logger对象设置其他参数。你知道吗

医生是这么说的:

The logger name hierarchy is analogous to the Python package hierarchy, and identical to it if you organise your loggers on a per-module basis using the recommended construction logging.getLogger(__name__). That’s because in a module, __name__ is the module’s name in the Python package namespace.

相关问题 更多 >