问题标签 [structlog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使 Python Structlog 在没有关键字“事件”的情况下进行日志记录
我正在使用 Python 结构日志。一切都记录为
我不想要那个 event 关键字,我只想记录事件数据:
我如何实现这一目标?
python - 在 structlog 中设置渲染器树
我将如何配置以structlog
使包括上述在内的所有消息info
都stdout
使用一段KeyValueRenderer
时间,而所有日志记录也将使用JSONRenderer
?
注意:我只想使用 structlog,没有标准库的东西
python - 如何使用 structlog 将日期和日期时间记录为字符串?
Structlog 似乎在创建日志消息时使用,这__repr__
会导致对象看起来更可取。date
datetime
'datetime.datetime(2018, 9, 20, 10, 1, 52, 414750)'
'2018-09-20 10:01:52.414750'
我原以为会有一个现成的处理器来处理这个问题,但我找不到。
python - 自定义日志级别不适用于 structlog
我正在使用 python 自定义日志 - TRACE 是下面代码中的自定义日志级别。
使用默认记录器,它工作正常
但是当我将它更改为 structlog 时,它给出了错误。
structlog 无法识别以下代码中的 TRACE。
似乎 structlog 不支持自定义日志级别?
已经尝试过提到的解决方法https://github.com/hynek/structlog/issues/47
IE
但它不工作
structlog - 如何使用 structlog 添加代码行号
使用 python 标准日志记录模块,可以使用以下命令添加原始日志调用的行号:%(lineno)s.
这如何使用 structlog 来完成?
python - 捕获 structlog 中的所有 stdout/stderr 以生成 JSON 日志
我目前正试图摆脱 print() 并开始使用 ELK 堆栈和 structlog 模块集中日志收集来生成结构化的 json 日志行。这对于我使用 loggingHelper 模块自己编写的模块来说非常好,我可以导入和使用
在其他模块和脚本中。这是 loggingHelper 模块类:
这会产生格式良好的输出(每行一个 JSON),filebeat 能够读取并转发到 Elasticsearch。但是,第三方库完全粉碎了格式良好的日志。
正如您所看到的,来自第三方 Librara(googleapiclient)的信息级别和错误级别消息都是在不经过日志处理器的情况下打印的。
使用我编写的 loggingHelper 模块捕获和格式化在执行一个脚本中发生的所有事情的最佳方式(也是最 Pythonic)是什么?这甚至是最佳实践吗?
编辑:目前记录器确实写入标准输出本身,然后使用>>和2>&1将其重定向到crontab中的文件。如果我想将通过第三方库日志记录写入 stdout/stderr 的所有内容重定向到我,这对我来说似乎是一种不好的做法,因为这会导致循环,对吗?因此,我的目标不是重定向,而是捕获日志处理器中的所有内容。相应地更改了标题。
python - Python structlog 中有没有办法将键从“记录器”更改为“命名空间”?
我在我的 Python 项目中使用 structlog - http://www.structlog.org/en/stable/ 。如果配置中的处理器是,我有一个
这会将 event_dict 中的键添加为logger
. 但是,我想将密钥字符串更改为其他内容,namespace
而不是logger
. 我怎样才能做到这一点?
我已经检查了功能
但该函数使用硬编码字符串logger
作为
python - 使用 structlog 登录 Python 项目并记录需要删除的第三方库
我正在使用 structlog 库来记录我的 Python 项目。我看到一些我不想要的第三方库日志。如何删除这些日志?
python - 多处理中的 structlog 和 stdlib 日志记录配置
我正在尝试将 structlog 集成到使用multiprocessing
. 虽然我计划structlog
完全切换到,但我也想捕获logging
第三部分库的 stdlib 调用。由于我们计划发出 JSON 日志文件和键值输出,我认为正确的方法是将实际格式委托给logging
:
根据https://docs.python.org/3/howto/logging-cookbook.html#logging-to-a-single-file-from-multiple-processes我们使用 aQueueHandler
将所有日志消息发送到主进程写作。
这是我目前的配置:
注意:我在调试过程中对两种输出格式都使用了 StreamHandler,但 JSON 格式的输出FileHandler
最终会输出,因此 QueueHandler 介于两者之间。
输出是:
这里有多个问题:
- 该
worker-process
字段有主进程的值,而不是工作进程的值 - 记录器的
event
字段structlog
包含的序列化值event_dict
包含正确的值worker-process
我希望structlog
在移交给logging
QueueHandler 之前评估处理器链。
有人可以解释一下 structlog 在这种情况下应该如何工作吗?