花生壳做局域网站,成都产品包装设计,成都门户网站建设多少钱,制作网站收费日志是一个系统的重要组成部分#xff0c;用以记录用户操作、系统运行状态和错误信息。日志记录的好坏直接关系到系统出现问题时定位的速度。logging模块Python2.3版本开始成为Python标准库的一部分。 日志级别 在最简单的使用中#xff0c;我们直接导入logging模块#xff…日志是一个系统的重要组成部分用以记录用户操作、系统运行状态和错误信息。日志记录的好坏直接关系到系统出现问题时定位的速度。logging模块Python2.3版本开始成为Python标准库的一部分。 日志级别 在最简单的使用中我们直接导入logging模块然后调用它的debug、info、warn、error和critical等函数记录日志。默认情况下logging模块将日志打印到屏幕终端日志级别为WARNNING也就是说日志级别大于等于WARNING的日志才会被显示 #!/usr/bin/python3
import logginglogging.debug(debug message)
logging.info(info message)
logging.warn(warn message)
logging.error(error.message)
logging.critical(critical.message) default_logging.py 程序执行结果如下 $ python3 default_logging.py
WARNING:root:warn message
ERROR:root:error.message
CRITICAL:root:critical.message 日志级别是一个逻辑上的概念用来区分日志的重要程度。将日志分为不停级别的日志后一方面可以在大多数时间只保存级别比较高的日志来提高性能领一方面也便于日志的分析。例如从一个超大的日志文件中快速找出几条错误信息。 在python的logging模块中日志分为5个级别 日志级别权重含义CAITICAL50严重错误表名软件已不能继续运行了ERROR40发生严重的错误必须马上处理WARNING30应用程序可以容忍这些信息软件还是在正常工作不过它们应该被检查及修复否则将在不久的将来发生问题INFO20证明事情按预期工作突出强调应用程序的运行过程DEBUG10详细信息只有开发人员调试程序时才需要关注的事情配置日志格式 在使用logging记录日志之前我们可以进行一些简单的配置如下 #!/usr/bin/python3
import logginglogging.basicConfig(filenameapp.log, levellogging.INFO)logging.debug(debug message)
logging.info(info message)
logging.warn(warn message)
logging.error(error.message)
logging.critical(critical.message) 执行上面的程序会在当前目录下产生一个app.log文件。该文件中存在INFO及INFO以上级别的日志记录。 上面我们通过basicConfig方法对日志进行了简单的配置我们也可以进行更加复杂的日志配置。在这之前先了解logging模块中的几个概念 Logger日志记录器是应用程序中能直接使用的接口Handler 日志处理器用以表名将日志保存到什么地方以及保存多久Formatter 格式化用以配置日志的输出格式在典型的使用场景中一个日志记录器使用一个日志处理器一个日志处理器使用一个日志格式化 python的logging模块提供给你了多种方式来配置日志。对于比较简单的脚本可以直接使用basicConfig在代码中配置日志。对于比较复杂的项目可以将日志的配置保存在一个配置文件中然后在代码中使用fileConfig函数读取配置文件。 源码中配置日志示例 在这个例子中日志文件会保存所有DEBUG级别及以上级别的日志。每一条日志包含了打印日志的时间日志的级别和日志的内容 #!/usr/bin/python3
import logginglogging.basicConfig(filenameapp.log,levellogging.DEBUG,format%(asctime)s : %(levelname)s : %(message)s)logging.debug(debug message)
logging.info(info message)
logging.warn(warn message)
logging.error(error.message)
logging.critical(critical.message) 典型的日志配置文件示例 对于复杂的项目一般将日志配置保存到配置文件中。如下logging.cnf #首先在[loggers]声明一个名为root的logger
[loggers]
keys root#在[handlers]中声明一个名为logfile的handler
[handlers]
keys logfile#在[formatters]中声明一个名为generic的formatter
[formatters]
keys generic#在[logger_root]中定义root这个logger所使用的handler
[logger_root]
handlers logfile#在[handler_logfile]中定义handler输出日志方式、日志文件的切换时间等
[handler_logfile]
class handlers.TimedRotatingFileHandler
args (app.log,)
level DEBUG
format generic#[在formatter_generic]中定义了日志的格式包括日志产生的时间、日志级别、产生日志的文件名和行号等信息
[formatter_generic]
format %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s] %(message)s python代码中使用logging.config模块的fileConfig函数加载日志配置 #!/usr/bin/python3
import logging
import logging.configlogging.config.fileConfig(logging.cnf)logging.debug(debug message)
logging.info(info message)
logging.warn(warn message)
logging.error(error.message)
logging.critical(critical.message) 转载于:https://www.cnblogs.com/sellsa/p/10078138.html