当前位置: 首页 > 面试题库 >

Python日志记录-检查日志文件的位置?

姜嘉良
2023-03-14
问题内容

知道Python日志语句存储在哪里的方法是什么?

即如果我这样做:

import logging
log = logging.getLogger(__name__)
log.info('Test')

在哪里可以找到日志文件?另外,当我打电话时:

logging.getLogger(__name__)

这与记录器的行为/保存方式有某种关系吗?


问题答案:

logging模块使用附加到记录器的处理程序来决定最终存储或显示消息的方式,位置或方式。您可以logging默认配置为也写入文件。您应该真正阅读过文档,但是如果您将要写入消息的文件的名称调用到logging.basicConfig(filename=log_file_name)哪里log_file_name(请注意,您必须在logging调用其他任何文件之前先执行此操作),然后所有消息都会记录到所有记录器中(除非稍后会进行一些进一步的重新配置)。请注意记录器设置为什么级别;如果有内存,info则低于默认日志级别,因此您还必须level=logging.INFO将参数包含在内,以使basicConfig消息最终出现在文件中。

至于问题的另一部分,则logging.getLogger(some_string)返回一个Logger对象,该对象从root记录器插入到层次结构中的正确位置,名称为的值some_string。调用时不带参数,它将返回根记录器。
__name__返回当前模块的名称,因此logging.getLogger(__name__)返回Logger名称设置为当前模块名称的对象。这是与一起使用的常见模式logging,因为它会使记录器结构镜像您代码的模块结构,这通常使调试时记录消息更加有用。



 类似资料:
  • 我刚刚在我的应用程序中实现了日志记录,我想知道是否有一种方法来检查日志记录程序是否为空。 我想到的是在我的脚本中设置两个处理程序: 一个用于带有级别的控制台 一个用于级别为的文件 在脚本的末尾,我需要检查logger是否不为空。这意味着在运行期间,记录了一些的消息,在这种情况下,我希望通过将调试级别的日志文件发送到我的邮箱。 这种检查在脚本本身中是否可能,而不需要shell重定向到文件?

  • 我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?

  • 问题内容: 我在查找日志文件时遇到问题。 我在Windows XP的Eclipse 3.7.1中使用Java日志记录- 。我文件的相关行是: 据我所知,执行以下两行之后: 我的日志文件应该在哪里是整数。 我在该目录中有5个不同的文件,通过,但是它们都没有包含我的日志记录,甚至没有包含今天日期的记录。我进行了一些谷歌搜索,发现“ 跟踪和日志记录”表示我的日志应位于其他位置。那里有一个名为的文件,但实

  • 问题内容: 我正在考虑将Redis用于Web应用程序日志记录目的。我用谷歌搜索,有人将日志转储到Redis队列/列表中,然后将计划的工作人员转储到磁盘中。 http://nosql.mypopescu.com/post/8652869828/another-redis-use-case- centralized-logging 我希望寻求理解,为什么不直接使用Redis持久化到磁盘?如果我分配了一

  • logging 模块自 2.3 版以来一直是 Python 标准库的一部分。在 PEP 282 中有对它的简洁描述。除了 基础日志教程 之外,这些文档是非常难以阅读的。 日志记录一般有两个目的: 诊断日志 记录与应用程序操作相关的日志。例如,当用户遇到程序报错时, 可通过搜索诊断日志以获得上下文信息。 审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用

  • 问题内容: 我需要将对项目中的Oracle数据库的所有查询记录到日志文件中。 有什么 好的 解决方案来实现这一目标?一些示例用法将不胜感激。 我已经用jdbcdslog查看了SLF4J,但不确定如何使用它登录到文件。而且,我需要“过滤”一些日志(因为我不需要知道何时调用某种方法) 最好是,我更愿意使用,但这不是必需的。 谢谢。 更新 我找到了这篇Oracle文章,但是它并没有真正告诉您如何以编程方