Python记录,不写时间戳到输出文件

时间:2015-11-06 12:59:27

标签: python-2.7 logging

我使用以下语句创建日志:

module = sys.modules['__main__'].__file__
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
                format='%(asctime)s %(name)s (%(levelname)s): %(message)s')
log = logging.getLogger(module)

然后我在我的脚本上有一个选项,使用参数-o将输出写入文件。我认为当一个人指定他们希望将日志写入磁盘时,会发生此语句的问题:

 if arguments.o:
    fh = RotatingFileHandler(arguments.o, mode='a', maxBytes=2*1024*1024,
                        backupCount=2, encoding=None, delay=0)
    fh.setLevel(logging.DEBUG)
    log.addHandler(fh)

如果不向文本字符串添加额外的datetime语句,有没有办法使用format参数执行此操作?

以下是印刷品上的内容:

2015-11-06 07:27:13,592 C:\GIS\move_content\src\updatecontent.py (INFO): Reading Configuration file

以下是配置输出:

Reading Configuration file

谢谢

答案我发现:

基于我的一个回复,我能够将其添加到我的代码中,输出现在看起来是正确的:

# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)

1 个答案:

答案 0 :(得分:1)

文件处理程序使用不同的格式字符串,您也应该手动将其设置为文件处理程序。

示例:

fh.setFormatter(formatter)

Cookbook for Python 3 (Python 2 is the same for this question)