回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>所以我可以像这样在日志消息中添加其他字段</p>
<pre class="lang-py prettyprint-override"><code>logging.info("My log Message", extra={"someContext":1, "someOtherContext":2})
</code></pre>
<p>这很好</p>
<p>但不清楚如何提取我的日志格式化程序中的所有额外字段</p>
<pre class="lang-py prettyprint-override"><code>def format(self, record):
record_dict = record.__dict__.copy()
print(record_dict)
</code></pre>
<p>在上面我可以看到我在输出dict中的所有额外字段,但是它们被压平成一个dict,上面还有我不想要的垃圾</p>
<pre><code>{'name': 'root', 'msg': 'My log Message', 'args': (), 'levelname': 'INFO', 'levelno': 20, 'pathname': '.\\handler.py', 'filename': 'handler.py', 'module': 'handler', 'exc_info': None, 'exc_text': None, 'stack_info': None, 'lineno': 27, 'funcName': 'getPlan', 'created': 1575461352.0664868, 'msecs': 66.48683547973633, 'relativeCreated': 1253.0038356781006, 'thread': 15096, 'threadName': 'MainThread', 'processName': 'MainProcess', 'process': 23740, 'someContext': 1, 'someOtherContext':2}
</code></pre>
<p>有没有办法不用事先知道就可以拿到我所有的备用钥匙</p>
<p>我正在编写一个json格式化程序,并希望创建一个dict a la</p>
<pre><code>justMyExtra = ?????
to_log = {
"message" record_dict["message"],
**justMyExtra
}
</code></pre>