问题标签 [python-logging]

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.

0 投票
1 回答
32 浏览

python - 如何禁用 python 程序的日志记录(外部)?

有一个python 程序我想在不修改的情况下运行,但我想扼杀日志记录。但是,该程序不会通过命令行参数公开对日志记录设置的访问。当我运行文件时,有什么方法可以摆脱日志输出但保留程序的正常输出?

我能想到的最佳解决方案是将文件包装在另一个禁用日志记录的文件中,但如果可能的话,我想在运行文件时直接扼杀日志记录输出。

0 投票
2 回答
1408 浏览

django - 即使 DEBUG=False 也记录 SQL 查询

这是我的日志配置settings.py

有一个我无法解释的行为:如果我运行,debug=True我可以看到所有 SQL 查询都记录到控制台,但是当debug=False这种情况没有发生时,即使我没有更改上面的配置。

为什么是这样?如何在我的日志记录配置中确定 SQL 查询是否记录到控制台?

0 投票
1 回答
253 浏览

python - 有什么方法可以在 Python 中为日志记录模块配置缓冲区

我有详细的日志记录,看起来它显着影响了我的 Python 程序的性能。据我了解,默认情况下,Python 日志记录模块似乎会缓冲直到一条日志消息。是否可以为多个日志消息配置此缓冲区?例如,我可以让 Python 日志记录模块缓冲最多 10 条消息吗?我已经阅读了 Python 文档,并且还讨论了类似thisthisthis这样的堆栈溢出问题,但没有明确的答案,因此发布了这个。

感谢您的任何意见。

0 投票
1 回答
1795 浏览

python - 为 pythons 日志模块创建自定义日志功能

我一直在尝试弄清楚如何为 python 日志记录模块创建自定义函数。我的目标是使用通常的功能,例如logging.debug(...)通过多个渠道(例如 Telegram 或 MQTT)发布日志消息。所以我的想法是为普通的日志方法添加额外的参数。例如logging.debug ("a log", telegram=True, mqtt=False),也许还有其他论点。我发现的只是类logging.StreamingHandler的继承,然后使用方法emit,但这只会传递参数记录。那么如何以有意义的方式实现我的问题呢?我有思维错误或方法错误吗?

0 投票
1 回答
738 浏览

python - 子记录器的默认处理程序是什么?

我知道根记录器具有lastResort打印到控制台的处理程序,如果未配置根记录器处理程序logging.basicConfig并且用户使用logging.info/debug/warning/error/critical("some msg") Orlogger = logging.gerLogger()后跟logger.info/debug/warning/error/critical("some msg")

但是对于使用创建的子记录器logger = logging.getLogger("someName"),当我们编写logger.info/debug/warning/error/critical("some msg"),并且没有配置处理程序时propagate = true,子记录器是否有任何默认处理程序?还是回退到祖先的处理程序,然后到根记录器的处理程序,如果祖先/根记录器没有处理程序,然后到根记录器lastResort处理程序?

如果将propagate 设置为false,那么是否会为子记录器分配一些默认处理程序?

0 投票
4 回答
988 浏览

python - 如何缩进python记录器打印的多行消息?

当前行为:

想要的行为:

DEBUG:package:123可以有不同的宽度,因此在将消息发送到记录器之前无法调整消息。

0 投票
1 回答
75 浏览

python - python日志控制台和文件输出包含重复的消息

我已经为 python-flask 项目实现了日志记录,为此我创建了一个带有代码的模块 logging_manager -

并通过从 logging_manager 导入记录器在我的 python 脚本中使用它。

每次调用 get_logger 时,都会向其添加额外的一条消息。

我的输出是(你可以看到重复) -

我正在为这个项目使用 pycharm。

0 投票
1 回答
720 浏览

python - 登录 Python/Django 未按预期工作

我有以下用于日志记录的处理程序配置:

现在基于这个配置,我的日志应该在每个午夜轮换一次,即它应该创建日期明智的日志。

all.log文件中,所有内容都使用正确的时间戳正确记录,但是当轮换发生时,我看不到备份日志文件(前一天日志文件)中的所有日志。

例如:

假设今天是 2019-10-29,all.log 文件开始存储从 2019-10-29 00:00:00 到 2019-10-29 23:59:59 的所有日志。

第二天,即 2019 年 10 月 30 日(会发生轮换),当我去检查 all.log.2019-10-29 时,它包含从 2019 年 10 月 30 日 00:00:00 到 2019 年的日志- 10-30 01:00:00 和 all.log 文件从 00:00:00 开始存储 2019-10-30 的日志。所以基本上我所有的备份文件只包含第二天 00:00:00-01:00:00 的日志。

all.log 于 2019-10-30

all.log.2019-10-29

all.log.2019-10-28

我正在使用按计划运行的服务器,服务器在凌晨 1 点关闭并在早上 7 点启动。这是我明白为什么会在凌晨 1 点发生这种奇怪行为的唯一原因,但我无法弄清楚为什么这会导致问题

任何帮助表示赞赏。

我正在使用 Django 1.9.7 和 Python 2.7.15

0 投票
1 回答
44 浏览

python - Python没有记录到标准输出

我对记录器有一个简单的 YAML 配置:

在初始化应用程序的工厂中,我使用 dictConfig 来初始化配置:

问题是,我没有在终端中得到任何输出。问题是什么?

0 投票
0 回答
248 浏览

python - 使用日志记录时,Python 多处理“不能腌制”

我正在使用 multiprocessing.Pool 来并行化我为模拟(D&D 5e 中的战斗)编写的一些 Python 代码。但是,我收到此错误:can't pickle _thread.RLock objects. 我做了一些研究,看起来问题是我的模拟使用了具有记录器的对象(来自logging模块)。我仍然希望支持对模拟的单进程运行进行日志记录(以便人们可以进行调试/检查输出),但是对多进程运行的日志支持对我来说不太重要,因为一旦用户知道模拟正常工作,他们一般不需要逐个播放。我怎样才能重构我的代码,使日志记录在这里不是问题(当有多个进程时禁用日志记录,以多处理接受的方式实现日志记录,或其他)?

我的模拟课程中的一些代码:

一些使用日志的代码(来自 Encounter 类,每个 Simulation 都有一个实例):

如果您需要更多代码示例,请告诉我。