Skip to content

Instantly share code, notes, and snippets.

@ixuuux
Created December 9, 2021 04:01
Show Gist options
  • Save ixuuux/d2bb906f4739464b8c9cd8cb2240e993 to your computer and use it in GitHub Desktop.
Save ixuuux/d2bb906f4739464b8c9cd8cb2240e993 to your computer and use it in GitHub Desktop.
对loguru的一层简单包装,主要使其支持多实例
import sys
import atexit
from typing import Dict
# noinspection PyProtectedMember
from loguru._logger import Core as _loguru_Core
# noinspection PyProtectedMember
from loguru._logger import Logger as _loguru_Logger
# noinspection PyProtectedMember
from loguru import _defaults
# noinspection PyShadowingBuiltins
class _MyLogger(_loguru_Logger):
def __init__(
self,
*,
# _loguru_Logger.add params
sink,
level=_defaults.LOGURU_LEVEL,
format=_defaults.LOGURU_FORMAT,
filter=_defaults.LOGURU_FILTER,
colorize=_defaults.LOGURU_COLORIZE,
serialize=_defaults.LOGURU_SERIALIZE,
backtrace=_defaults.LOGURU_BACKTRACE,
diagnose=_defaults.LOGURU_DIAGNOSE,
enqueue=_defaults.LOGURU_ENQUEUE,
catch=_defaults.LOGURU_CATCH,
# _loguru_Logger params
# core=None,
exception=None,
depth=0,
record=False,
lazy=False,
colors=False,
raw=False,
capture=True,
patcher=None,
extra: Dict=None,
# _loguru_Logger.add kwargs params
**kwargs
):
super().__init__(
core=_loguru_Core(),
exception=exception,
depth=depth,
record=record,
lazy=lazy,
colors=colors,
raw=raw,
capture=capture,
patcher=patcher,
extra=extra or {}
)
if _defaults.LOGURU_AUTOINIT and sys.stderr:
self.add(sys.stderr, format=f'<blue>🦋</blue> {format}')
self.add(
sink=sink,
level=level,
format=format,
filter=filter,
colorize=colorize,
serialize=serialize,
backtrace=backtrace,
diagnose=diagnose,
enqueue=enqueue,
catch=catch,
**kwargs
)
atexit.register(self.remove)
logger = _MyLogger(
sink='./logs/{time:MMDD}_log.log',
retention='15 days',
rotation='00:00',
enqueue=True,
encoding='utf-8',
level='DEBUG',
format='<green>{time:HH:mm:ss.SSS}</green> | <level>{level: <8}</level> - <level>{message}</level>',
backtrace=False
)
if __name__ == '__main__':
logger.debug('🦋🧬 Test')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment