52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
"""
|
|
This module provides a `Logurud` class that integrates the `loguru` logger
|
|
with the base logging functionality defined in `logger_module.LoggerBase`.
|
|
|
|
Classes:
|
|
Logurud: A class that extends `LoggerBase` and uses `loguru` for logging.
|
|
|
|
Usage example:
|
|
>>> from python_utils.loguru import Logurud
|
|
>>> class MyClass(Logurud):
|
|
... def __init__(self):
|
|
... Logurud.__init__(self)
|
|
>>> my_class = MyClass()
|
|
>>> my_class.logger.info('This is an info message')
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import typing
|
|
|
|
import loguru
|
|
|
|
from . import logger as logger_module
|
|
|
|
__all__ = ['Logurud']
|
|
|
|
|
|
class Logurud(logger_module.LoggerBase):
|
|
"""
|
|
A class that extends `LoggerBase` and uses `loguru` for logging.
|
|
|
|
Attributes:
|
|
logger (loguru.Logger): The `loguru` logger instance.
|
|
"""
|
|
|
|
logger: loguru.Logger
|
|
|
|
def __new__(cls, *args: typing.Any, **kwargs: typing.Any) -> Logurud:
|
|
"""
|
|
Creates a new instance of `Logurud` and initializes the `loguru`
|
|
logger.
|
|
|
|
Args:
|
|
*args (typing.Any): Variable length argument list.
|
|
**kwargs (typing.Any): Arbitrary keyword arguments.
|
|
|
|
Returns:
|
|
Logurud: A new instance of `Logurud`.
|
|
"""
|
|
cls.logger: loguru.Logger = loguru.logger.opt(depth=1)
|
|
return super().__new__(cls)
|