3

我想修改 python 日志记录以记录从脚本启动时(或初始化日志记录模块时)经过的时间。

000:00 DEBUG bla bla
000:01 ERROR wow! ... this is measured in minutes:seconds

relativeCreated在日志记录模块中找到了该变量,但这给了我毫秒级的准确性,这只会垃圾日志,使得更难看到时间去哪里或运行日志的方式。

我怎样才能做到这一点?

4

3 回答 3

7

您可以使用从传递到其方法的logging.Formatter子类,将其格式化为 mins:secs 并以格式字符串输出,例如在格式字符串中使用不同的占位符,例如:relativeCreatedLogRecordformat%(adjustedTime)s

class MyFormatter(logging.Formatter):
    def format(self, record):
        record.adjustedTime = format_as_mins_and_secs(record.relativeCreated)
        return super(MyFormatter, self).format(record)

您可以在其中定义format_as_mins_and_secs返回格式化的相对时间。

于 2013-09-05T18:52:01.947 回答
-1

首先在我脑海中浮现。

  1. 计算脚本开始时间和现在时间之间的时间增量。
  2. 为此使用 datetime 模块(对 epoh secs 进行计算并返回时间戳)。
  3. 通过登录模块将结果插入消息部分。

我现在不放任何代码来激励你阅读更多关于提到的模块)。

于 2013-09-05T14:58:19.310 回答
-1

我不确定您是否可以使用loggingpython 模块执行此操作(我可能是错的)。

但是,如果您需要应用程序的运行时,我会说您应该在变量中捕获应用程序启动的时间(使用time模块)。捕获时间后,您可以将该变量传递给记录器,以计算遇到错误时的差异。

于 2013-09-05T14:57:14.283 回答