1

Task

I have logging setup across multiple modules in my application. All these modules send logs to the same file.

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) 

Settings.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

actions1.py

def init(plogger):
  global logger
  logger=plogger

def some_function()
  **do something**
  logger.info("some text")

I have multiple actions1/2/3.py modules and I want to have different logging levels and different logging formats for each of these action scripts. I went through the docs and came across auxiliary module example but it doesn't specify how I can achieve custom settings for the same logger when it is being accessed by these separate scripts.

Any help on how to do it would be appreciated. I possibly want to initialize these custom settings when I invoke the init() method but I am currently out of ideas how to.

P.S. Please ignore the typos. It was a long code.

1 Answer 1

2

Instead of creating a single global logger you can use logging.getlogger(name) method from the logging module. This way you will get a logger object. Now you can set the other parameters for the logger object.

This is what docs says:

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.