我看到一些帖子声称使用日志功能代替显示调试消息。我知道日志记录提供了各种消息级别,如info
,debug
...等。当消息对用户在运行时跟踪进程很重要时,应使用info
级别。就像日志记录中的info
级别一样,print
在相同的情况下使用。何时使用logging
或print
进行最佳做法?谢谢!
logging.basicConfig(level = logging.INFO)
logger = logging.getLogger(__name__)
def process():
#### "Create a connection" is a critical message for user to know what operation is processing now
logger.info("Create a connection with ...")
# or
print("Create a connection with ...")
答案 0 :(得分:0)
如果您正在处理自己的小项目,可以使用print
,但在更大的项目环境中,您真的不想使用print
语句,因为它很快就会变得混乱。特别是如果您不知道消息打印到stdout
的哪个位置。 logging
模块为您提供了很多优势:
1)有Streamformatters
允许您标准化输出消息(例如时间戳和用户名)
2)多个Streamhandlers
。大多数情况下,当出现问题时,您不仅希望通过stdout
向用户打印某些内容,而且希望保留该数据以便稍后查看出现了什么问题。