log
¶
Extensions to the standard Python logging system.
Module Contents¶
Classes¶
Logging formatter for creating JSON logs. |
|
LoggerAdapter to add custom keywords. |
|
Logging handler when used when progress bars are enabled. |
Functions¶
|
Create a tqdm progress bar. |
|
Get a logger with a default handler doing nothing. |
|
Add log handlers using GMT. |
|
Add an argument group with logging options to the argument parser. |
|
Activate the e3 log using argument parsed. |
|
Activate default E3 logging. |
Attributes¶
- log.T¶
- log.LEVELS¶
- log.NO_DEBUG_LOGGING_MODULES = ['boto3', 'botocore', 'requests', 'urllib3']¶
- class log.LogConfig¶
Bases:
e3.config.ConfigSection
- title: ClassVar[str] = 'log'¶
- pretty: bool = True¶
- stream_fmt: str = '%(levelname)-8s %(message)s'¶
- file_fmt: str = '%(asctime)s: %(name)-24s: %(levelname)-8s %(message)s'¶
- log.log_config¶
- log.default_output_stream: TextIO | IO[str]¶
- log.pretty_cli¶
- log.console_logs: str | None¶
- class log.JSONFormatter(date_fmt: str | None = None, context: Mapping[str, Any] | None = None)¶
Bases:
logging.Formatter
Logging formatter for creating JSON logs.
It will print some standard attributes defined in STD_ATTR plus application extra attributes defined in _extra_attr
- STD_ATTR = ['asctime', 'levelname', 'name', 'message', 'module', 'exc_text']¶
- _extra_attr: list[str] = ['anod_uui']¶
- format(record: logging.LogRecord) str ¶
convert record into JSON.
- class log.E3LoggerAdapter(logger, extra=None)¶
Bases:
logging.LoggerAdapter
LoggerAdapter to add custom keywords.
- process(msg: Any, kwargs: Any) tuple[Any, Any] ¶
Allow to handle extra parameter.
It is called by super method log. It is overwritten here because the standard process method will get rid of extra attribute
- log(level: int, msg: Any, *args: Any, anod_uui: int = 0, **kwargs: Any) None ¶
Integrate additional keywords using standard interface.
- Parameters:
level – see logging module
args – see logging module
anod_uui – Anod UUI
kwargs – other parameter supported by std logger._log method
- info(msg: Any, *args: Any, anod_uui: int = 0, **kwargs: Any) None ¶
Wrap standard logger.info method.
It allows adding extra keyword parameters
- debug(msg: Any, *args: Any, anod_uui: int = 0, **kwargs: Any) None ¶
Wrap standard logger.debug method.
It allows adding extra keyword parameters
- warning(msg: Any, *args: Any, anod_uui: int = 0, **kwargs: Any) None ¶
Wrap standard logger.warning method.
It allows adding extra keyword parameters
- error(msg: Any, *args: Any, anod_uui: int = 0, **kwargs: Any) None ¶
Wrap standard logger.error method.
It allows adding extra keyword parameters
- critical(msg: Any, *args: Any, anod_uui: int = 0, **kwargs: Any) None ¶
Wrap of standard logger.critical method.
It allows adding extra keyword parameters
- exception(msg: Any, *args: Any, exc_info: logging._ExcInfoType = True, anod_uui: int = 0, **kwargs: Any) None ¶
Wrap standard logger.exception method.
It allows adding extra keyword parameters
- log.progress_bar(it: collections.abc.Iterator[T] | collections.abc.Sequence[T], **kwargs: Any) collections.abc.Iterator[T] ¶
Create a tqdm progress bar.
- Parameters:
it – an interator
kwargs – see tqdm documentation
- Returns:
a tqdm progress bar iterator
- log.__null_handler_set¶
- class log.TqdmHandler¶
Bases:
logging.StreamHandler
Logging handler when used when progress bars are enabled.
- color_subst = ((), (), (), (), ())¶
- emit(record: logging.LogRecord) None ¶
Emit a record.
If a formatter is specified, it is used to format the record. The record is then written to the stream with a trailing newline. If exception information is present, it is formatted using traceback.print_exception and appended to the stream. If the stream has an ‘encoding’ attribute, it is used to determine how to do the output to the stream.
- log.getLogger(name: str | None = None, prefix: str = 'e3') E3LoggerAdapter ¶
Get a logger with a default handler doing nothing.
Calling this function instead of logging.getLogger will avoid warnings such as:
'No handler could be found for logger...'
- Parameters:
name – logger name, if not specified return the root logger
prefix – application prefix, will be prepended to the name
- log.add_log_handlers(level: int, log_format: str, datefmt: str | None = None, filename: str | None = None, set_default_output: bool = True, json_format: bool = False) None ¶
Add log handlers using GMT.
- Parameters:
level – set the root logger level to the specified level
log_format – format stream for the log handler
datefmt – date/time format for the log handler
filename – use of a FileHandler, using the specified filename, instead of a StreamHandler. Set default_output_stream to write in this file.
- log.add_logging_argument_group(argument_parser: argparse.ArgumentParser, default_level: int = logging.WARNING) argparse._ArgumentGroup ¶
Add an argument group with logging options to the argument parser.
To be used with e3.log.activate_with_args.
- Parameters:
argument_parser – the parser in which the group will be created
default_level – the logging level that will be used by default
- log.activate_with_args(args: argparse.Namespace, default_level: int = logging.WARNING) None ¶
Activate the e3 log using argument parsed.
To be used with e3.log.add_logging_argument_group.
- Parameters:
args – the result of parsing arguments
default_level – the logging level assumed by default
- log.activate(stream_format: str = log_config.stream_fmt, file_format: str = log_config.file_fmt, datefmt: str | None = None, level: int = logging.INFO, filename: str | None = None, e3_debug: bool = False, json_format: bool = False) None ¶
Activate default E3 logging.
- Parameters:
level – set the root logger level to the specified level
datefmt – date/time format for the log handler
stream_format – format string for the stream handler
file_format – format string for the file handler
filename – redirect logs to a file in addition to the StreamHandler
e3_debug – activate full debug of the e3 library
- log.e3_debug_logger¶
- log.debug¶