- Notset = 0: This is the initial default setting of a log when it is created. It is not really relevant and most developers will not even take notice of this category. In many circles, it has already become nonessential. The root log is usually created with level WARNING.
- Debug = 10: This level gives detailed information, useful only when a problem is being diagnosed.
- Info = 20: This is used to confirm that everything is working as it should.
- Warning = 30: This level indicates that something unexpected has happened or some problem is about to happen in the near future.
- Error = 40: As it implies, an error has occurred. The software was unable to perform some function.
- Critical = 50: A serious error has occurred. The program itself may shut down or not be able to continue running properly.
# Importing your logger
import logging
# OPTIONAL: Configure the root logger to output to file, set debug level to DEBUG, set output format
logging.basisConfig(filename='test.log', level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(message)s')
# Utilizes the root logger to log info a message
logging.info(f'Your log message {prop}')
# Importing your logger
import logging
APP_LOGGER_NAME = 'MyAwesomeApp'
# Create a unique child logger for the module
logger = logging.getLogger(__name__)
# Sets log level to unique child logger
logger.setLevel(logging.INFO)
# Creates formatter for unique child logger
formatter = logging.Formatter('%(asctime)s:%(levelname)s:%(message)s')
# Creates file handler for unique child logger
file_handler = logging.FileHandler('employee.log')
# Sets formatter to unique child logger
file_handler.setFormatter(formatter)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
# Adds file handler to unique logger
logger.addHandler(file_handler)
# Configure the root logger to output to file, set debug level to DEBUG, set output format
logging.basisConfig(filename='test.log', level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(message)s')
def setup_applevel_logger(logger_name = APP_LOGGER_NAME, file_name=None):
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
sh = logging.StreamHandler(sys.stdout)
sh.setFormatter(formatter)
logger.handlers.clear()
logger.addHandler(sh)
if file_name:
fh = logging.FileHandler(file_name)
fh.setFormatter(formatter)
logger.addHandler(fh)
return logger
def get_logger(module_name):
return logging.getLogger(APP_LOGGER_NAME).getChild(module_name)