24-06-2026-Logging

Logger creation import logging logger = logging.getLogger("Test_app") logger.setLevel(logging.DEBUG) Create Handler Console Handler creation console_handler = logging.StreamHandler() console_handler.setLevel(logging.WARNING) File Handler creation file_handler = logging.FileHandler(r'/home/goutham/Desktop/python_training/project_1/logs/custom_log.log',mode='a') file_handler.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s | %(levelname)s| %(filename)s| Line %(lineno)d|%(message)s',datefmt='%m/%d/%Y %H:%M:%S') attaching formatter to the Handler console_handler.setFormatter(formatter) file_handler.setFormatter(formatter) attaching handler to the logger logger.addHandler(console_handler) logger.addHandler(file_handler) logger.debug("Step:1") logger.info("Progress started") logger.warning("value is not correct") logger.error("Division by zero wont work") logger.critical("Application cannot be continued") def calculate_price_per_unit(price,quantity): logger.info(f"Calculate price per unit: {price}/{quantity}") try: price_per_unit = price/quantity logger.info(f"price per unit: {price_per_unit:2f}") return price_per_unit except ZeroDivisionError as e: logger.exception("Cannot calculate price-quantity is zero") return None except TypeError as e: logger.exception("Invalid input type- expected numbers") return None # calculate_price_per_unit(2000,15) calculate_price_per_unit(2000,0) calculate_price_per_unit(2000,"goutham") import logging def get_logger(logger_name,log_filename,level=logging.DEBUG): logger = logging.getLogger(logger_name) logger.setLevel(level) file_handler = logging.FileHandler(log_filename,mode="a") file_handler.setLevel(level) console_handler = logging.StreamHandler() console_handler.setLevel(logging.WARNING) formatter = logging.Formatter('%(asctime)s | %(levelname)s| %(filename)s| Line %(lineno)d|%(message)s',datefmt='%m/%d/%Y %H:%M:%S') file_handler.setFormatter(formatter) console_handler.setFormatter(formatter) logger.addHandler(file_handler) logger.addHandler(console_handler) return logger