python - 如何中断事件信息以进行记录

标签 python logging

我在 Python 中使用日志记录模块已经有一段时间了。我的疑问与其说是技术问题,不如说我不确定这些消息的最佳实践。问题是,有时会发生一个事件,我想在日志中转储有关它的信息,但信息很多。我可以构建一个长字符串,并在 log.info() 命令中使用它。没关系,除了结果几乎不可读之外。在字符串中引入字符“\n”确实会将消息分成日志文件中的单独行,但是左对齐,它看起来很难看,因为在日志格式化程序的开头我正在写入日期/时间、用户等。

另一方面,我可以将消息拆分为对 log.info() 的不同调用,但这使得它们看起来好像是不同的事件。

编辑:附加信息。

如果我执行不同的日志调用,它看起来像

2012-10-01 11:55:00,674 - SQLBOLPVWBA01 - WARNING   | ---------- Warning 001: a test was not passed ----------
2012-10-01 11:55:00,694 - SQLBOLPVWBA01 - WARNING   | File: \\b1snnasries01.SAN.CORP\D_8525_50_01\ValidacionModelos\Usuarios\Equity\testsValidationLibrary\XMLs\barrierMC\barrierMCbasket_0002_Q011388.xml
2012-10-01 11:55:00,704 - SQLBOLPVWBA01 - WARNING   | Parametrization: configMatlabMC8192.m
2012-10-01 11:55:00,732 - SQLBOLPVWBA01 - WARNING   | Expected: {'premium': 0.1302634916172996, 'stdErr': 0.0016369990559715}
2012-10-01 11:55:00,765 - SQLBOLPVWBA01 - WARNING   | Calculated: {'premium': 0.13526349161729959, 'stdErr': 0.0016369990559715229}

这里的通常/最佳实践是什么?

我想我想要类似的东西

2012-10-01 11:55:00,674 - SQLBOLPVWBA01 - WARNING  | ---------- Warning 001: a test was not passed ----------
                                                   | File: \\b1snnasries01.SAN.CORP\D_8525_50_01\ValidacionModelos\Usuarios\Equity\testsValidationLibrary\XMLs\barrierMC\barrierMCbasket_0002_Q011388.xml
                                                   | Parametrization: configMatlabMC8192.m
                                                   | Expected: {'premium': 0.1302634916172996, 'stdErr': 0.0016369990559715}
                                                   | Calculated: {'premium': 0.13526349161729959, 'stdErr': 0.0016369990559715229}

最佳答案

使用 \n 记录消息以分隔行,正如您已经考虑过的那样,然后编写一个自定义 Formatter 子类,将消息拆分为单独的行,插入后续行的适当空白前缀并将它们再次连接在一起。

关于python - 如何中断事件信息以进行记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23558320/

相关文章:

php - 为什么 for block 会覆盖 PHP 和 Python 中的外部作用域?

python - 任务计划程序不会运行 python 脚本 (pywin32) 来打开 Excel。如何从 Pywin32 获取更多信息

java - 如何获取特定日志文件并在 jenkins 控制台输出中显示其内容

Java 应用程序 + 日志记录

logging - 我可以将 Puppet 代理输出重定向到不同的日志文件吗?

java - 记录方法执行时间

python - 找不到程序 : 'pypy' on Google Colab. 解决方案或替代方案?

python - Pandas - 基于非数值数据的数据透视表

python - 如何获取Python 2.5上的相对文件路径?

c# - Selenium 测试失败时捕获错误消息