在Python中设置日志的区域设置

1 投票
3 回答
1174 浏览
提问于 2025-04-17 22:51

我正在尝试使用Python的日志记录框架。它运行得很好,除了一个问题。

下面这段示例代码:

import logging

FORMAT = '%(asctime)-15s %(message)s'
logging.basicConfig(format=FORMAT, level=logging.INFO)
logging.info('test')

产生了这样的输出:

2014-03-18 11:23:43,082 test

注意到在秒和毫秒之间用的是逗号,而不是点。在美国,应该有某个设置可以控制这个。

我该设置什么,才能让默认的地区信息使用点“.”作为小数分隔符呢?

3 个回答

1

试试在基本配置中这样做:

logging.basicConfig(format=FORMAT, level=logging.INFO, datefmt="%Y-%m-%d %H:%M:%S")

在我的代码中,你可以用任何字符代替 : 或 -,如果你愿意的话。

输出结果:

2014-03-19 00:48:22 test
4

下面这段代码,在调用了 logging.basicConfig() 之后,在 Python 3.4 中对我来说是有效的:

for h in logging.getLogger().handlers:
    h.formatter.default_msec_format = '%s.%03d'
5

毫秒并不是地区设置的一部分,你不能通过比如说 strftime 这样的方式来指定它们。因此,带有毫秒的 ,nnn 是按照 ISO 8601 标准直接加上的。

更新:虽然这个标准允许使用点或者逗号,但它暗示逗号是更推荐的。目前,日志记录不允许你去设置这个,所以如果你需要这个功能,可以参考 这个回答,它在重复的问题中有提到。

撰写回答