import logging
import logging.handlers
 
# log file name and logging message level
log_file_name = 'loggingexample.log'
log_level = logging.INFO
 
# log record format string
format_string = '%(asctime)s %(name)s %(levelname)s %(message)s'
 
# set default logging (to console)
logging.basicConfig(level=log_level, format=format_string)
 
# set logging to file
log_formatter = logging.Formatter(format_string)
file_handler = logging.FileHandler(log_file_name, mode='w') # mode is file write mode, 'a' to append
file_handler.setFormatter(log_formatter)
 
# create child logger and set it to be a file handler
logger = logging.getLogger() # or pass a string to give it a name
logger.addHandler(file_handler)
logger.setLevel(log_level)
 
# log some messages
logger.info("Started")
logger.info("This is an example entry")
logger.debug("This line won't get logged as the log level is INFO")
logger.info("Done.")
 
# perform an orderly shutdown by flushing and closing all handlers; called at application exit and no further use of the logging system should be made after this call.
logging.shutdown()