nanos.logging module

class nanos.logging.LoggerMixin

Bases: object

Simple mixin for logging.

Adds a logger property to the class and sets the logger name to the module and class name of the class:

>>> class MyClass(LoggerMixin):
...     pass
...
>>> my_class = MyClass()
>>> my_class.logger.name
'mymodule.MyClass'
property logger: Logger

Logger instance for this class.

The logger name is determined by the module and class name of this class. For example, if the class is named MyClass and it’s in the module mymodule, the logger name will be mymodule.MyClass.

Returns:

Logger instance for this class.

Return type:

Logger

nanos.logging.get_simple_logger(name: str = 'root', console: bool = True, log_file: str | None = None, log_level: str | int = 10) Logger

Creates simple instance of logger.

Useful for simple scripts, where precise configuration is not needed. Output .. rubric:: Example

>>> import logging
>>> logger = get_simple_logger()
>>> logger.debug("Hello, world!")
2023-05-01T12:34:56 root DEBUG Hello, world!
Parameters:
  • name (str | None, optional) – Name of logger. Defaults to “root”.

  • console (bool, optional) – Add console handler. Defaults to True.

  • log_level (str | int, optional) – Log level. Defaults to logging.DEBUG.

  • log_file (str | None, optional) – File name to write log to. Defaults to None.

Returns:

logging.Logger

nanos.logging.set_level_for_logger(logger_names: str | list[str] | tuple[str, ...], level: int = 30) None

Change logging level for one or more loggers.

Parameters:
  • logger_names (str | list[str] | tuple[str, ...]) – Logger name(s) to change level for.

  • level (int, optional) – Logging level to set. Defaults to logging.WARNING.

Returns:

None