【发布时间】:2016-06-16 10:47:47
【问题描述】:
我正在编写一些代码,其中一半的代码似乎在记录和计时各种事情。我发现这混淆了真实的代码。我想知道除了干净地将日志记录和实际代码分开之外,仍然记录所有内容的方法是什么?
例如一些代码块可以做一些简单的事情:
for item in files:
parsed_item = parse_item(item)
但要记录它可能会产生更多代码,这些代码会使真实代码变得混乱,例如
folders = 0
files = 0
paid_users = 0
free_users = 0
for item in files:
parsed_item = parse_item(item)
if parsed_item['isFolder']:
folders += 1
else:
files += 1
if parsed_item['isPaidUser']:
paid_users += 1
else:
free_users += 1
logger.info('Parsed: %d folders %d files %d paid users %d free users' % folders, files, paid_users, free_users)
可能会有一些更干净的东西,我们为代码块使用装饰器或上下文管理器,然后在 __exit__() 方法上进行一些日志记录,例如
with parse_files_logger() as logger:
for item in files:
parsed_item = parse_item(item)
logger.log(parsed_item)
但很想看看是否有更清洁的替代品?
【问题讨论】:
标签: python logging coding-style