import logging
# make a debug message
logging.debug("This is a simple debug log")# make an info message
logging.info("This is a simple info log")# make a warning message
logging.warning("This is a simple warning log")# make an error message
logging.error("This is a simple error log")# make a critical message
logging.critical("This is a simple critical log")# just mapping logging level integers into strings for convenience
logging_levels ={
logging.DEBUG:"DEBUG",# 10
logging.INFO:"INFO",# 20
logging.WARNING:"WARNING",# 30
logging.ERROR:"ERROR",# 40
logging.CRITICAL:"CRITICAL",# 50}# get the current logging levelprint("Current logging level:", logging_levels.get(logging.root.level))# get the current logging formatprint("Current logging format:", logging.BASIC_FORMAT)
logger_basic.py
import logging
# make a basic logging configuration# here we set the level of logging to DEBUG
logging.basicConfig(
level=logging.DEBUG
)# make a debug message
logging.debug("This is a simple debug log")# make an info message
logging.info("This is a simple info log")# make a warning message
logging.warning("This is a simple warning log")# make an error message
logging.error("This is a simple error log")# make a critical message
logging.critical("This is a simple critical log")
logger_config.py
import logging
logging.basicConfig(
level=logging.INFO,format="%(asctime)s - %(levelname)s - %(message)s",)
logging.info("This is an info message!")
logger_datefmt.py
import logging
logging.basicConfig(
level=logging.INFO,format="%(asctime)s - %(levelname)s - %(message)s",
datefmt="[%Y-%m-%d] %H:%M:%S",)
logging.info("This is an info message!")
logger_file.py
import logging
import math
logging.basicConfig(level=logging.DEBUG,
handlers=[logging.FileHandler('logs.log','a','utf-8')],format="%(asctime)s %(levelname)-6s - %(funcName)-8s - %(filename)s - %(lineno)-3d - %(message)s",
datefmt="[%Y-%m-%d] %H:%M:%S - ",)
logging.info("This is an info log")defsquare_root(x):
logging.debug(f"Getting the square root of {x}")try:
result = math.sqrt(x)except ValueError:
logging.exception("Cannot get square root of a negative number")# or# logging.error("Cannot get square root of a negative number", exc_info=True)returnNone
logging.info(f"The square root of {x} is {result:.5f}")return result
square_root(5)
square_root(-5)
logger_handlers.py
import logging
# return a logger with the specified name & creating it if necessary
logger = logging.getLogger(__name__)# create a logger handler, in this case: file handler
file_handler = logging.FileHandler("file.log")# set the level of logging to INFO
file_handler.setLevel(logging.INFO)# create a logger formatter
logging_format = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")# add the format to the logger handler
file_handler.setFormatter(logging_format)# add the handler to the logger
logger.addHandler(file_handler)# use the logger as previously
logger.critical("This is a critical message!")