Python 日志记录模块记录时间戳以包括微秒

新手上路,请多包涵

我正在使用 python 的日志记录模块来记录日志,但需要时间戳来包含微秒。时间戳似乎只能精确到毫秒。这是我的测试代码

import logging

logging.basicConfig(format='%(asctime)s %(levelname)s {%(module)s} [%(funcName)s] %(message)s',

    datefmt='%Y-%m-%d,%H:%M:%S:%f', level=logging.INFO)

class log2_test():

    def test_class(self):

        logging.warning("Warning2 inside the class")

def get_started2():

    logging.info("Logged2 Here")

if __name__ == '__main__':
    get_started2()

这是我得到的输出——

 2015-07-09,16:36:37:f INFO {logger} [get_started2] Logged2 Here

不知何故,无法识别 %f。 Python 版本为 2.7.6。

如何让时间戳包含微秒?提前致谢。

原文由 Han Gu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 608
1 个回答

根据 文档strftime() 不支持 %f 。记录器将毫秒作为单独的 msecs 属性 提供,因此您可以在现有时间戳之后自己添加它,如下所示:

 logging.basicConfig(format='%(asctime)s.%(msecs)03d %(levelname)s {%(module)s} [%(funcName)s] %(message)s', datefmt='%Y-%m-%d,%H:%M:%S', level=logging.INFO)

这给了我使用您的脚本的以下输出:

 2015-07-10,09:21:16.841 INFO {test script} [get_started2] Logged2 Here

原文由 Martin Evans 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题