Last active
November 11, 2025 17:51
-
-
Save htv2012/681cb0f21a901b6fc2bc3d785ee910e8 to your computer and use it in GitHub Desktop.
Configure Python logging
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import logging | |
| INFO = logging.INFO | |
| DEBUG = logging.DEBUG | |
| WARNING = logging.WARNING | |
| def create_logger(logger_name, log_level=logging.WARNING, filename=None): | |
| """ Create a logger that log to the console, if a filename is | |
| supplied, log to that file as well. | |
| """ | |
| logger = logging.getLogger(logger_name) | |
| logger.setLevel(log_level) | |
| # create console handler and set appropriate level | |
| ch = logging.StreamHandler() | |
| formatter = logging.Formatter("%(message)s") | |
| ch.setFormatter(formatter) | |
| logger.addHandler(ch) | |
| # Create a file handler and set appropriate level | |
| if filename: | |
| fh = logging.FileHandler(filename=filename, mode='w') | |
| fformatter = logging.Formatter( | |
| '%(asctime)s;%(filename)s;%(lineno)d;%(levelname)s;%(message)s', | |
| "%Y-%m-%d %H:%M:%S") | |
| fh.setFormatter(fformatter) | |
| logger.addHandler(fh) | |
| return logger |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [loggers] | |
| keys=root,sample | |
| [handlers] | |
| keys=console | |
| [formatters] | |
| keys=default | |
| [logger_root] | |
| level=WARNING | |
| handlers=console | |
| [logger_sample] | |
| level=DEBUG | |
| handlers=console | |
| qualname=sample | |
| propagate=0 | |
| [handler_console] | |
| class=StreamHandler | |
| level=DEBUG | |
| formatter=default | |
| args=(sys.stdout,) | |
| [formatter_default] | |
| format=[%(asctime)s] %(levelname)s %(name)s: %(message)s | |
| datefmt=%Y-%m-%d %H:%M:%S |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # | |
| # Add this section to pyproject.toml to configure pytest logging | |
| # | |
| [tool.pytest.ini_options] | |
| log_cli = true | |
| log_cli_level = "DEBUG" | |
| log_cli_format = "%(levelname)-8s | %(name)s:%(message)s" | |
| log_cli_date_format = "%Y-%m-%d %H:%M:%S" | |
| log_file = "pytest.log" | |
| log_file_level = "DEBUG" | |
| log_file_format = "%(levelname)-8s | %(name)s:%(message)s" | |
| log_file_date_format = "%Y-%m-%d %H:%M:%S" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment