0

I originally used logging.basicConfig(filename='logs/example.log') to create a log file. After reading the docs I found that it is not recommended to modify the class attributes of logging. Now that I've changed these attributes how can I change them back/reset the logger module?

Output of the code below creates two log files, app.log and example.log. The latter is an artifact of .basicConfig() being called when I first tried to set up the logger.

UPDATE:

grep -R "example.log" /lib/python3.8/ does not output anything so I'm not sure what was changed in the source code of logging to cause the example.log file to be created every time

import logging
import logging.handlers

LOG_FILENAME = 'logs/app.log'

# https://stackoverflow.com/questions/3630774/logging-remove-inspect-modify-handlers-configured-by-fileconfig
# need to run this every time since I changed class attributes of logger
# still creates example.log file
print(logging.getLogger())
root_log = logging.getLogger()
for handler in root_log.handlers:
        root_log.removeHandler(handler)
# OR        
# logging.basicConfig(force=True) #one way to reset root logger format

# create logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# create console and file handler and set level to info
fh = logging.handlers.RotatingFileHandler(LOG_FILENAME, maxBytes=250000, backupCount=5)
fh.setLevel(logging.INFO)
# ch = logging.StreamHandler()
# ch.setLevel(logging.INFO)

# create formatter
ffh = logging.Formatter('%(asctime)s : %(name)-12s : %(levelname)-8s : %(message)s')
# fch = logging.Formatter('%(name)-12s : %(levelname)-8s : %(message)s')

# add formatter handlers
fh.setFormatter(ffh)
# ch.setFormatter(fch)

# add handler to logger
logger.addHandler(fh)
# logger.addHandler(ch)

logger.info('instance logger')
# logging.shutdown()
sat1017
  • 333
  • 1
  • 4
  • 10
  • What is the question here? – wim Jun 12 '21 at 17:56
  • @wim I updated the question. Basically, I configured the logger using the official docs basic tutorial but only after I saw the note of how this shouldn't be done in practice. Now I am trying to figuring out how to revert the config and use the format and handler that I created for a `logging` instance – sat1017 Jun 12 '21 at 19:33

0 Answers0