除了phd的答案外,调用 logging.basicConfig()
是一个方便的函数,它将为您获取一个默认的 StreamHandler
和一个 Formatter
。如果您想快速拥有记录功能,这就足够了。您可以通过向 basicConfig
传递一些参数来自定义其行为:
添加有用的参数:在消息旁边输出时间戳
logger = logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
对于大多数一次性需求, 这样做是可以的。如果你需要更多关于配置的控制,你可以通过自行定义记录器属性来添加更复杂的行为。
高级示例: 不使用basicConfig
函数
import logging
logger = logging.getLogger("mylogger")
streamHandler = logging.StreamHandler()
streamHandler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
streamHandler.setFormatter(formatter)
logger.addHandler(streamHandler)
logger.info("Files copied")
logger.warning("disk quota exceeded")
>> 2017-12-06 11:11:12, 090 - mylogger - INFO Files copied
>> 2017-12-06 11:11:12, 091 - mylogger - WARNING disk quota exceeded
在一个更大的环境中,下一步将是从先前创建的日志记录器派生出一个新的日志记录器,以首先保留格式,并维护“日志层次结构”。
logger2 = logging.getLogger("mylogger.new")
logger2.info("New Logger info")
>> 2017-12-06 11:11:12, 091 - mylogger.new - New logger info
一个很好的参考是日志记录指南:
https://docs.python.org/2/howto/logging-cookbook.html