当前位置: 首页 > 知识库问答 >
问题:

如何做新式惰性格式化python日志

凌声
2023-03-14

这涉及pylint和python日志记录。以下代码不起作用:

logging.basicConfig(level=logging.DEBUG, format='{message}', style='{')
log.debug('url {}', url)

它提出:

  File "/usr/lib/python3.9/logging/__init__.py", line 363, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting

如何使用{}样式而不是%s使日志记录工作?

我在测试我的模块时使用这个basicConfig,但我的包中也可以有一个更高级的格式化程序。我开始探索这一点的原因是因为pylint在我使用f字符串时抱怨,但当我使用(%s)的旧格式时也抱怨。

共有2个答案

公羊晟
2023-03-14

日志记录的延迟格式仅由占位符组成,然后在字符串后面用逗号分隔,用值替换这些占位符。

在这种情况下:

logging.basicConfig(level=logging.DEBUG, format='%(message)s')
log.debug("url %s", url)
於子晋
2023-03-14

您可以在pylintrc中使用loging-format-style=new

自pylint 2.2以来:

loging-format-style是日志检查器的一个新选项,用于在调用记录器时使用str.format()样式格式字符串。

它接受两个选项:--loging-format-style=old用于使用%style格式,这是假定的默认设置,以及--loging-format-style=new用于使用{}样式格式。

还有一个fstring样式,看到这个非常好的答案:https://stackoverflow.com/a/59027338/2519059

 类似资料:
  • 问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为

  • 问题内容: 我正在从数据库中提取各种帖子的日期。日期采用以下格式: 如何将这些日期重新格式化为更用户友好的格式: 假设从mysql数据库获取的日期存储在名为: 问题答案:

  • 问题内容: 在JavaScript中,如何格式化日期对象以打印为? 问题答案: 对于自定义分隔的日期格式,你必须从DateTimeFormat对象(属于ECMAScript Internationalization API的一部分)中提取日期(或时间)组件,然后手动使用所需的分隔符创建字符串。 为此,你可以使用DateTimeFormat#formatToParts: 你还可以使用来一对一地提取各

  • 问题内容: 我正在使用jQuery在Ajax上进行首次尝试。我正在将数据获取到页面上,但是为Date数据类型返回的JSON数据遇到了一些麻烦。基本上,我得到的字符串看起来像这样: 从完全不熟悉JSON的人- 如何将其格式化为短日期格式?是否应该在jQuery代码中的某个地方处理?我尝试使用该插件没有成功。 仅供参考:这是我结合以下答案使用的解决方案: 该解决方案从回调方法中获取了我的对象,并使用日

  • 我正在研究spring-boot和gradle,以创建一个rest服务。现在我需要将json日期格式设置为“yyyy-MM-dd”,即格式应为dateOfBirth:“16-03-2015”,但我得到的是“dateOfBirth:-751181400000”。我在我的应用程序中添加了以下代码。java类,但仍然无法获得所需的输出。 和应用程序.java: 请帮我解决这个问题。

  • 问题内容: 我有三个日期格式:,,。 是否可以验证和解析诸如or或or之类的字符串? 问题答案: 尝试每种格式,看看是否有效: