当前位置: 首页 > news >正文

网站建设丿金手指下拉公司网站制作找哪家

网站建设丿金手指下拉,公司网站制作找哪家,网页制作教程菜鸟,战略网页游戏开服表python logging 详解1. 导入logging模块2. 配置日志记录器3. 记录日志消息4. 自定义日志记录器5. 日志轮换6. 日志过滤器7. 日志异常跟踪8. 日志输出到控制台和文件9. 使用配置文件10. 使用第三方库11. format格式详解12. 总结Python的logging模块提供了灵活的日志记录功能&…

python logging 详解

  • 1. 导入logging模块
  • 2. 配置日志记录器
  • 3. 记录日志消息
  • 4. 自定义日志记录器
  • 5. 日志轮换
  • 6. 日志过滤器
  • 7. 日志异常跟踪
  • 8. 日志输出到控制台和文件
  • 9. 使用配置文件
  • 10. 使用第三方库
  • 11. format格式详解
  • 12. 总结

Python的logging模块提供了灵活的日志记录功能,可以记录各种级别的日志消息,并可以将日志消息输出到文件、控制台、网络等不同的位置。

下面是Python logging模块的详细使用方法:

1. 导入logging模块

import logging

2. 配置日志记录器

可以通过BasicConfig()方法来配置日志记录器的基本属性,例如日志级别、输出格式、输出位置等。

logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(levelname)s %(message)s',filename='myapp.log',filemode='w')

其中:

  • level:设置日志级别,可以设置为DEBUG、INFO、WARNING、ERROR、CRITICAL。
  • format:设置日志输出格式,可以自己定义输出格式,例如’%(asctime)s %(levelname)s %(message)s’,表示输出时间、日志级别和消息内容。
  • filename:设置日志输出文件名,如果不设置则默认输出到控制台。
  • filemode:设置日志输出文件的打开模式,可以设置为’w’表示覆盖写,'a’表示追加写。

3. 记录日志消息

可以使用logging模块提供的不同方法来记录不同级别的日志消息,例如:

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

4. 自定义日志记录器

可以通过Logger类来自定义日志记录器,例如:

logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler('myapp.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

其中:

  • getLogger():获取日志记录器,可以设置记录器名称。
  • setLevel():设置日志级别。
  • FileHandler():设置日志输出位置,可以设置输出文件名。
  • Formatter():设置日志输出格式。
  • addHandler():添加处理器。

5. 日志轮换

可以使用logging模块提供的RotatingFileHandler或TimedRotatingFileHandler类来实现日志轮换,例如:

handler = logging.handlers.RotatingFileHandler('myapp.logmaxBytes=1024*1024, backupCount=5)
handler.setFormatter(formatter)
logger.addHandler(handler)

其中:

  • RotatingFileHandler():创建日志轮换处理器,可以设置最大文件大小和备份数量。
  • maxBytes:设置日志文件最大大小,超过这个大小就会自动创建新的日志文件。
  • backupCount:设置备份数量,超过这个数量就会删除最早的日志文件。

TimedRotatingFileHandler类可以按照时间轮换日志文件,例如:

handler = logging.handlers.TimedRotatingFileHandler('myapp.log', when='midnight', backupCount=5)
handler.setFormatter(formatter)
logger.addHandler(handler)

其中:

  • TimedRotatingFileHandler():创建按时间轮换的日志处理器。
  • when:设置轮换时间,可以设置为’midnight’、‘H’、'M’等不同的时间间隔。

6. 日志过滤器

可以通过Filter类来设置日志过滤器,只有符合条件的日志消息才会被记录,例如:

class MyFilter(logging.Filter):def filter(self, record):return 'important' in record.getMessage()handler = logging.FileHandler('myapp.log')
handler.addFilter(MyFilter())
handler.setFormatter(formatter)
logger.addHandler(handler)logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is an important warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

其中:

  • Filter():创建日志过滤器。
  • filter():实现过滤器的逻辑,返回True表示记录该日志消息,返回False表示忽略该日志消息。

7. 日志异常跟踪

可以通过exc_info参数来记录异常信息,例如:

try:raise ValueError('This is an exception message')
except ValueError:logger.error('Exception occurred', exc_info=True)

其中:

  • exc_info=True:记录异常信息,包括异常类型、异常消息和异常堆栈。

以上就是Python logging模块的详细使用方法,通过灵活配置和使用,可以实现各种不同场景下的日志记录和管理。

8. 日志输出到控制台和文件

在默认情况下,日志信息只会输出到文件中,如果需要同时输出到控制台,可以添加StreamHandler处理器,例如:

import syshandler = logging.StreamHandler(sys.stdout)
handler.setFormatter(formatter)
logger.addHandler(handler)

其中:

  • StreamHandler():创建输出到控制台的处理器,可以设置输出流。
  • sys.stdout:设置输出流为标准输出。

9. 使用配置文件

可以通过配置文件来设置日志记录器的属性,例如:

[loggers]
keys=root,sampleLogger[handlers]
keys=consoleHandler,fileHandler[formatters]
keys=simpleFormatter[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler[logger_sampleLogger]
level=DEBUG
handlers=fileHandler
qualname=sampleLogger
propagate=0[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('myapp.log', 'w')[formatter_simpleFormatter]
format=%(asctime)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S

其中:

  • loggers:设置日志记录器的名称。
  • handlers:设置日志处理器的名称。
  • formatters:设置日志格式化器的名称。
  • logger_*:设置日志记录器的属性,例如日志级别、处理器、传递性等。
  • handler_*:设置日志处理器的属性,例如处理器类型、日志级别、格式化器等。
  • formatter_*:设置日志格式化器的属性,例如输出格式、时间格式等。

可以通过fileConfig()方法来加载配置文件,例如:

import logging.configlogging.config.fileConfig('logging.conf')logger = logging.getLogger('sampleLogger')logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

10. 使用第三方库

除了Python自带的logging模块之外,还有一些第三方库可以实现更多的功能和扩展,例如:

  • loguru:提供了更加灵活和方便的日志记录方式。
  • structlog:提供了更加可定制化和扩展性的日志记录方式。
  • coloredlogs:提供了彩色输出和更加易读的日志信息。
  • logbook:提供了更加高效和线程安全的日志记录方式。

这些第三方库都有其自己的特点和优势,可以根据具体需求选择适合的库来实现日志记录和管理。

11. format格式详解

logging模块中的format参数用于设置日志的格式化输出方式,可以自定义输出的内容和格式。下面是format参数的详解:

  • %(asctime)s:日志记录时间,格式为“年-月-日 时:分:秒,毫秒”。
  • %(name)s:日志记录器的名称。
  • %(levelname)s:日志级别名称。
  • %(message)s:日志消息内容。
  • %(pathname)s:当前执行代码的路径。
  • %(filename)s:当前执行代码的文件名。
  • %(funcName)s:当前执行函数的名称。
  • %(lineno)d:当前执行代码的行号。
  • %(thread)d:当前执行线程的ID。
  • %(threadName)s:当前执行线程的名称。
  • %(process)d:当前执行进程的ID。
  • %(processName)s:当前执行进程的名称。

例如,设置日志格式为’%(asctime)s %(levelname)s %(message)s’,表示输出时间、日志级别和消息内容。

还可以通过添加格式控制符来进一步定制输出格式,例如:

  • %(levelname)-8s:设置日志级别名称的宽度为8个字符,左对齐。
  • %(message).50s:设置日志消息内容的最大宽度为50个字符,超过部分截断。
  • %(asctime)s,%(msecs)03d:设置日志记录时间的毫秒部分为3位数字,例如“2021-09-23 10:23:45,123”。
  • %(filename)s:%(lineno)d:设置当前执行代码的文件名和行号,例如“test.py:20”。

通过灵活使用格式控制符,可以实现各种不同的输出格式和显示效果,方便日志记录和查看。

12. 总结

Python的logging模块提供了灵活的日志记录功能,可以记录各种级别的日志消息,并可以将日志消息输出到文件、控制台、网络等不同的位置。通过灵活配置和使用,可以实现各种不同场景下的日志记录和管理。在实际应用中,需要根据具体需求选择合适的日志记录方式和工具,以方便运维和调试。

http://www.yayakq.cn/news/59070/

相关文章:

  • 凡客做网站wordpress页面是什么
  • 江西省建设监督网站微信网站开发 js框架
  • 云主机和云服务器有什么区别网站优化外包找谁
  • 闵行品划网站建设公司开发直播平台网站
  • 房地产网站怎么推广wordpress修改底部联系QQ
  • 互联网技术专业学什么seo知识点
  • 网站添加文章之后更新缓存访问网站就需要输入账号密码电子商务网站建设需要什么
  • 网站建设中 gif阿里云 网站
  • 网站及新媒体建设宣传片网站做301
  • 具有口碑的柳州网站建设公司深圳市交易服务中心
  • 投资 公司 网站模板多用户商城源码下载
  • 网站添加微博做二手货的网站有哪些
  • 织梦做的网站首页排版错误全国十大跨境电商平台
  • 怎么做 代刷网站瑞安市公用建设局网站
  • 十堰哪里有做网站的中国建设银行网站怎么登录不上
  • 网站建设属于哪个行业注册一家公司需要什么条件
  • 教育机构网站网站301定向
  • 城市门户网站有没有帮别人做网站
  • 《工程建设》官方网站免费空间使用指南
  • 为什么网站设计很少全屏wordpress自定义作者
  • 河北省住宅和城乡建设厅网站中国域名交易网
  • 个人网站 免备案公司网站建设小江
  • 东莞专业建站公司费用海淀专业企业网站建设
  • 就业网站建设总结绍兴外贸网站建设
  • 网站虚拟空间过期博客建站模板
  • 国外最牛设计网站百度推广客户端下载
  • 一般网站建设电话网站模板之家
  • 第二季企业网站开发php中文网新手学做网站pdf下载
  • 南京自助建站模板丹东 建设集团 招聘信息网站
  • 上海网站建设友汇网站企业云服务