在Python上使用日志记录或打印的最佳实践

时间:2017-12-28 05:20:38

标签: python

我看到一些帖子声称使用日志功能代替显示调试消息。我知道日志记录提供了各种消息级别,如infodebug ...等。当消息对用户在运行时跟踪进程很重要时,应使用info级别。就像日志记录中的info级别一样,print在相同的情况下使用。何时使用loggingprint进行最佳做法?谢谢!

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 ...")

1 个答案:

答案 0 :(得分:0)

如果您正在处理自己的小项目,可以使用print,但在更大的项目环境中,您真的不想使用print语句,因为它很快就会变得混乱。特别是如果您不知道消息打印到stdout的哪个位置。 logging模块为您提供了很多优势:

1)有Streamformatters允许您标准化输出消息(例如时间戳和用户名)

2)多个Streamhandlers。大多数情况下,当出现问题时,您不仅希望通过stdout向用户打印某些内容,而且希望保留该数据以便稍后查看出现了什么问题。