问题标签 [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 回答
2935 浏览

python - 我可以将环境变量添加到 python 记录器 ini 文件配置吗?

我想通过函数中使用的在我的文件处理程序中使用环境变量添加自定义日志文件log.ini file目录logging.fileConfig()

我曾尝试在以下内容中添加环境变量:

我的 logging.ini 看起来像这样:

我使用以下方式配置它:

我的代码导致目录为:path/to/file/${LOG_DIRECTORY_ENV_VARIABLE}/logname.log

0 投票
0 回答
80 浏览

python - 如何使用 Redirect 函数重定向到 Python 中的另一个 URL

我需要登录到一个 URL(url),然后使用 lib 文件请求和重定向重定向到另一个 URL(url1)。请帮我处理这段代码

这是我用来从 url1 获取 HTML 代码的代码

我需要登录到“url”,然后重定向到“url1”并在 sample1.txt 文件中获取其 HTML 代码

0 投票
1 回答
401 浏览

python - 您可以删除或替换 python 日志消息吗?

我正在寻找一种方法来替换或删除 python 的日志记录模块写入的最后一条消息。目标是在变量发生变化时记录它。如果变量再次更改,则应删除旧的日志消息并打印新的日志消息。

你好,

我正在将 pythons 的日志记录模块用于我目前正在从事的深度学习项目。由于某些 GPU 没有足够的内存来支持训练期间的默认批量大小,并且批量大小和可用于事先计算的实际内存使用量之间没有明显的联系,因此一旦发生运行时错误,我就会发现它,并且将批量大小减少一。这个过程可以重复很多次,我总是记录哪个批量大小不起作用,哪个将是下一个尝试。我不想拥有 10-30 条(或更多)这些消息,而是简单地删除最后一条并用新的替换它。

我已经查看了 python 日志记录文档,偶然发现了 LogRecord 对象,但是在尝试处理它时,似乎这个对象实际上并没有记录所有日志,而是在一个特定日志上保存了一些更多信息.

如果根本没有办法做到这一点,我将研究某种捆绑解决方案,如下所述:Python logging: bundle reoccurring messages

下面的代码显示了我要替换的日志消息。

非常感谢任何帮助。

0 投票
2 回答
980 浏览

python - python 在 logging.debug() 之后如何查看它的日志记录

最近我遇到了登录python。

我在 test.py 文件中有以下代码

现在,有什么方法可以打印Logrecord生成的结果对象,logger.debug("test Message")因为它在文档中说明

每次记录某些内容时,Logger 都会自动创建 LogRecord 实例

https://docs.python.org/3/library/logging.html#logrecord-objects

我检查了保存debug到变量中并打印它

输出是NONE

我的目标是检查/查看logging.debug(test.py)在同一个 test.py 中生成的最终 Logrecord 对象,print()这是为了我自己的理解。

那么如何获取Logrecord生成的对象logger.debug("test Message")

0 投票
2 回答
119 浏览

python - python:如何随时启动和停止记录器

我正在尝试在我的 Django 应用程序的代码中记录 sql 语句

目前我在我的 settings.py 中使用以下记录器配置

通常要在 django 中记录 sql,我们可以将其添加django.db.backends到 settings.py 中的 logger.config

但问题是它会记录每个 sql 语句。那么我们如何django.db.backends在代码之间开始和停止登录。

我的views.py中有以下代码

我还想使用sql我在日志配置中定义的处理程序。

在上面的视图函数中,什么代码将进入开始和停止记录的地方。

0 投票
0 回答
272 浏览

python - python - 日志记录:如何从配置文件访问处理程序

我正在尝试在 Django 应用程序中使用日志记录。我想在配置文件中预先定义我的格式化程序和处理程序,然后根据需要在不同时间使用不同的处理程序。

目前我在我的 settings.py 中使用以下记录器配置

有没有办法可以使用 settings.py 文件中指定的处理程序

喜欢:

那么如何使用配置文件中提到的handler

0 投票
2 回答
1363 浏览

python - 如何使用 Python 每天登录到一个新目录?

我正在建立一个读出系统,该系统从许多仪器中获取数据,并且需要将数据记录到日志文件中。该系统一次将运行数周,因此每天都应该有一个日志文件。由于这些仪器在这段时间内被操纵,它们也可能具有与其状态相关的日志文件。

有了这个,我就有了一个存储所有日志的目录,例如“C:/logs”。由于每天都会有多个日志文件,我想每天在日志文件夹中自动创建一个新的子目录,所以文件的结构类似于'C:/logs/20190814' for August 14, 'C:/logs/20190815' for the 15th,等等。然后,在每个日常目录中,我都会有许多日志文件,例如'data.log', 'instrument1.log', 'instrument2.log'等。

理想情况下,这些将在每天午夜翻转。

我一直在使用 Python Logging 模块来尝试创建这些日志文件。我已经能够实现TimedRotatingFileHandler,但问题是

(1) 我想根据日期更改日志文件所在的目录,但保持它们的标题相同(例如'C:/logs/20190814/data.log', 'C:/logs/20190815/data.log'

(2)TimedRotatingFileHandler不使用'%Y%m%d.log'扩展名保存文件,而是'.log.%Y%m%d'使用 . 我想每天创建一个新目录并开始在新一天的目录中写入新日志。

0 投票
1 回答
38 浏览

python-3.x - 导入自定义日志模块抛出错误

我测试了以下代码以了解导入自定义 python 程序,它工作正常,但是当按照相同的过程导入自定义日志记录模块时,我看到错误。

下面工作正常

现在第二个程序 mult.py

下面不起作用,为什么?

第二个节目

错误信息

请帮我弄清楚我错过了什么。

0 投票
1 回答
212 浏览

python - Python 跨子类共享日志记录

我正在尝试找到一种跨类/子类/模块共享日志记录的最佳实践方法。以下类可以在同一个文件中,也可以分布在包/模块中。

例如

现在在这种情况下,整个类层次结构共享同一个记录器实例,由基类设置。

这是一个好习惯吗?或者我应该在每个 .py 文件的顶部设置一个全局变量,例如:

第一种方法看起来更面向对象,并且避免在模块导入时做任何事情(仅在对象创建时),而第二种方法创建每个类都可以看到的不同记录器,其名称反映了它所在的模块。

第一种情况的另一个优点是我可以在单个实例上设置自定义日志记录选项,它将适用于所有类,而在第二种情况下,它仅在每个记录器名称扩展父/基记录器名称时才有效,例如记录.getLogger('ABC')。但是,这些类不必位于相同的包或包层次结构中,因此这可能并不总是有意义的。

最好的方法是什么?

0 投票
1 回答
2386 浏览

python - Python 日志记录 - 两个记录器,两个日志文件 - 如何配置 logging.ini

拥有两个或更多不同的日志文件可能很实用。例如,对于 Rest 服务,有一个日志文件用于记录一般故障,另一个用于记录内容中的故障。

我尝试使用 INI 文件执行此操作,但由于某种原因,所有日志都会转到这两个文件。所以...

如果我希望 logger1 中的所有日志都转到logger1.log并且 logger2 中的所有日志都转到logger2.log ,那么logging.ini会是什么样子: