【发布时间】:2021-08-01 17:14:25
【问题描述】:
我按照here 的描述创建了一个自定义格式化程序。
然后我尝试使用以下代码将记录器及其初始化嵌入到单例中:
import logging
class _Logger:
_instance = None
def __init__(self):
self.logger = logging.getLogger("LeApp")
self.logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(CustomFormatter())
self.logger.addHandler(ch)
def Logger() -> _Logger:
if not _Logger._instance:
_Logger._instance = _Logger()
return _Logger._instance
def MYLOG(iMessage: str):
Logger().logger.info(iMessage)
def MYDBG(iMessage: str):
Logger().logger.debug(iMessage)
def MYWAR(iMessage: str):
Logger().logger.warning(iMessage)
def MYERR(iMessage: str):
Logger().logger.error(iMessage)
def CRITICAL(iMessage: str):
Logger().logger.critical(iMessage)
但是现在,日志中显示的信息不是引发警告的行号和文件名,而只是此 python 文件的文件名/行号。
[2021-08-01 10:30:32,889.889] p42815 {Logger2.py:58} WARNING - Object was None
日志库如何显示这些信息?
【问题讨论】:
-
@quamrana 是的,我就是这个意思,谢谢
标签: python python-3.x