问题标签 [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 - 使用 structlog 进行日志记录时的内存泄漏
我们在 python 中使用 structlog 记录器进行以下调用的代码中观察到内存泄漏:
细节:
- 观察是一本字典。
- 该程序在多线程应用程序中工作。
这很奇怪,因为大约每 600 次调用就会出现泄漏,并且泄漏了大约 250kB。
我们花了一些时间来寻找内存泄漏,我们使用 memory_profiler 得到了它。这可能是我们错过了 structlog 的配置参数来防止内存泄漏吗?
python - python structlog - 我可以动态更改日志级别但仅适用于特定类吗?
我的场景是这样的 - 我使用一个简单的记录器,并且log.info()/log.debug()
在我的代码中有很多消息。
我想动态更改日志级别,主要是能够“打开/关闭”调试级别日志。
我的问题是 - 是否有可能这样做,但让更改只影响我的部分代码?让我们说只有当我在特定类的方法中时。还是做类似事情的唯一方法是为该类使用不同的日志对象并仅更改其级别?
python - 使用 structlog 更改日志级别过滤
我正在使用 structlog,并且我将其配置为使用filter_by_level
处理器:
但是当我打电话时logger.setLevel(level)
我得到“PrintLogger 没有属性 setLevel”。
我应该使用不同的记录器工厂吗?我在“_loggers.py”下看不到任何其他记录器
structlog - 是否可以为信息日志中的某些字符着色?
目前,我正在尝试为日志中的某个部分着色以提高清晰度。像这样的东西:
此文字为灰色 此文字为橙色
我尝试使用像“\x1b[31m”这样的 ASCII 颜色表示红色,但它只是打印出“\x1b[31m”。
python - 配置 structlog 时 pytest 找不到测试
我有一个 python 项目,我在其中使用 pytest 进行单元测试。
通常,如果我从我的测试文件夹运行以下命令:
我会得到我所有的测试:
现在假设我定义了一个新类structlogconf.py(基于这个例子)
如果现在我再次运行 pytest collect 命令,pytest 将不会恢复任何直接或间接从structlogconf.py导入configure()函数的测试套件。所以我现在得到类似的东西:
这里有没有人知道如何以不会影响我的 pytest 测试 dicscovery 的方式使用struct log conf ?
仅供参考:这是在有问题的场景中运行收集时的堆栈跟踪:
python - Structlog 将处理器添加到处理程序
我正在努力为 structlog 中的不同处理程序设置不同的处理器。
这是我要实现的目标的最小示例:
控制台输出为:
文件输出为:
上面的输出是我所期望的,但是,对于文件处理程序,我想添加elastic_format
代码示例中包含的函数。
我看不到在处理程序上单独设置处理器的方法。目前这只是更改日志数据,但一旦完全实施,将对数据应用一些转换。如何使用 structlog 实现这一点?
为了澄清,我希望这仅适用于文件处理程序而不是控制台处理程序,所以我不相信它可以添加到该structlog.configure_once
部分。
python - 异步结构日志配置
在 structlog 文档中https://www.structlog.org/en/stable/performance.html是同步 structlog 配置的示例:
什么是等效的异步配置?