Python - 使用formatter和getLogger进行日志记录

时间:2014-02-20 20:39:51

标签: python logging

我正在尝试为我的Python logging代码添加时间戳。

我有代码:

logging.basicConfig(format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M')
log = logging.getLogger('Test_Service')

log.info('    Hello World')

但输出只显示:

INFO:Test_Service:    Hello World

如何让格式化程序在此处工作以便我可以包含时间戳?

1 个答案:

答案 0 :(得分:0)

其他人首先调用basicConfig(),因此您的通话无效。

你应该确保:

  1. 在调用basicConfig()之前,您的代码中只有一次main()来电,if __name__ == '__main__或来自main()子句的来电

  2. 您的代码中没有调用方便logging模块级功能,例如logging.debug() - 此类调用会自动调用basicConfig()。将任何此类调用替换为logger.debug(),其中logger是任何Logger实例(允许根记录器 - 只是不要调用模块级便捷函数)。

  3. 如果它仍然不起作用,您使用的是调用basicConfig()的第三方代码(库代码从不执行此操作),您需要进一步调查。