Python 2.7 Python日志记录,而不是将时间戳写入输出文件

Python 2.7 Python日志记录,而不是将时间戳写入输出文件,python-2.7,logging,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将输

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

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)

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

例如:

fh.setFormatter(formatter)

@Penguinlog-您能提供一个设置filehandler日志的示例吗?这样设置SetFormatter()就不会传入字符串了吗?'%(asctime)s%(name)s(%(levelname)s):%(message)s'答案如下:#创建格式化程序并将其添加到处理程序formatter=logging.formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')fh.setFormatter(格式化程序)