DoNNie_DarkO
DoNNie_DarkO

Reputation: 367

Custom Logging from multiple python modules

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.

Upvotes: 1

Views: 212

Answers (1)

BabbarTushar
BabbarTushar

Reputation: 1345

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.

Upvotes: 2

Related Questions