我使用以下语句创建日志:
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)
答案 0 :(得分:1)
文件处理程序使用不同的格式字符串,您也应该手动将其设置为文件处理程序。
示例:
fh.setFormatter(formatter)
Cookbook for Python 3 (Python 2 is the same for this question)