我正在使用python自定义日志-TRACE是以下代码中的自定义日志级别。
使用默认记录器,可以正常工作
但是当我将它更改为structlog时,它给出了错误。
structlog无法在下面的代码中识别TRACE。
似乎structlog不支持自定义日志级别?
已提及https://github.com/hynek/structlog/issues/47
的尝试解决方法即
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.6.0/fabric.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id='app'></div>
但是它不起作用
structlog.stdlib.TRACE = TRACE = 5
structlog.stdlib._NAME_TO_LEVEL['trace'] = TRACE
答案 0 :(得分:0)
由于您可能从you commented on的相关问题中了解到,目前没有任何官方方法。
您应该能够通过猴子补丁structlog.stdlib._NAME_TO_LEVEL
来绕开它。
答案 1 :(得分:0)
可以创建一个自定义级别,但不是很容易。
您需要记住,不仅要更改structlog.stdlib._NAME_TO_LEVEL
,还要更改structlog.stdlib._LEVEL_TO_NAME
。
然后,您需要至少向trace
添加一个structlog.stdlib._FixedFindCallerLogger
方法(如果您向trace
添加一个structlog.stdlib.BoundLogger
方法,则可以调用{{1 }},这很好)。
此代码应该有效:
LOG.trace