I have the following code for creating a logger:
import logging
import a as a
def main():
# create logger
logger = logging.getLogger('cli_logger')
logger.setLevel(logging.DEBUG)
#Create file handler
fh = logging.FileHandler('cli_log.log')
fh.setLevel(logging.DEBUG)
# create console handler
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
# create formatter and add it to the handlers
formatter = logging.Formatter('\n%(asctime)s - %(module)s - %(funcName)s()\n%(message)s\n')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)
logger.info("This should print to console and log file!")
logger.debug("This should print to the log file!")
#Do module stuff
a.write_something1()
a.write_something2()
...
if __name__ == '__main__':
main()
Does this mean that - for each function in the module a, I have to get the logger again?
i.e
module a
import logging
def write_something1():
logger = logging.getLogger('cli_logger')
logger.info('Module A1: Console and Debug Log')
logger.debug('Module A1: Debug Log')
def write_something2():
logger = logging.getLogger('cli_logger')
logger.info('Module A2: Console and Debug Log')
logger.debug('Module A2: Debug Log')