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

辽宁城市建设职业技术学院教育网站除了百度指数还有哪些指数

辽宁城市建设职业技术学院教育网站,除了百度指数还有哪些指数,磐石市住房和城乡建设局网站,武穴建设网站目录 logging模块 logging核心组件 logger handler StreamHandler:把日志内容在控制台中输出 FileHandler:把日志内容写入到文件中 filter formatter 注意日志级别的继承问题 logger.exception 上述样例的整体代码 日志的配置文件及其模板 lo…

目录

logging模块

logging核心组件

logger

handler

                StreamHandler:把日志内容在控制台中输出

                FileHandler:把日志内容写入到文件中

filter

formatter

注意日志级别的继承问题

logger.exception

上述样例的整体代码  

 日志的配置文件及其模板


logging模块

        logging是Python的内置日志模块,用于生成程序日志。l

        logging有五个日志级别,从低到高进行排序:DEBUG、INFO、WARMING、ERROR、CRITICAL。日志内容的记录只会记录当前设定等级及其以上的等级,例如级别为WARMING,日志的内容就只会记录WARMING、ERROR、CRITICAL,这三个级别的内容

        logger默认的级别是warming

logging核心组件

        logger(记录器):可以实例化多个记录器用于记录不同的日志要求

        handler(处理器):可以定义多个处理器处理不同的日志保存或发送要求

        filter(过滤器):可以对记录器的选择进行筛选

        formatter(格式器):可以对日志的内容进行格式化要求

logger

        logging.getLogger()

                定义多个logger,通过不同的名字的来创建不同的looger

        loggin.setLevel()

                定义记录器的日志级别

first_logger = logging.getLogger(name='FirstLogger')
second_logger = logging.getLogger(name='SecondLogger')
second_logger.setLevel(logging.DEBUG)
print(f'first_logger:{first_logger}')
print(f'second_logger:{second_logger}')

handler

        两个经常使用的handler

                StreamHandler:把日志内容在控制台中输出

                参数为None,也可选:

                sys.stderr、 sys.stdout

                stdout,stderr的中文名字分别是标准输入,标准输出和标准错误

stream_handler = logging.StreamHandler(stream=None)formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
first_logger.addHandler(stream_handler)
stream_handler.setFormatter(formatter)
first_logger.warning('warning text',)

                FileHandler:把日志内容写入到文件中

                3个主要参数,filename、mode、encoding、分别是文件名、写入模式、编码格式,大致跟一般的写入文件一致

file_handler = logging.FileHandler(filename='file_log',mode='a',encoding='utf-8')formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
first_logger.addHandler(file_handler)
file_handler.setFormatter(formatter)
first_logger.warning('warning text',)

filter

        logging.Filter()

        可以过滤使用不同的记录器,可以设置记录器的名字是否与过滤条件一致

        例如

        second_logger记录器的名字为【SecondLogger】, third_logger记录器的名字为【aabb.ccthird_logger】,而过滤器的格式为【aabb.cc'】        

        两个过滤器都是使用StreamHandler但是最终只有third_logger的日志内容被打印,因为只有third_logger的名字满足过滤器的条件

third_logger = logging.getLogger('aabb.ccthird_logger')
third_logger.warning('123')flt = logging.Filter('aabb.cc')
third_logger.addFilter(flt)
second_logger.addHandler(stream_handler)
second_logger.addFilter(flt)
second_logger.error('error text')

formatter

        logging.Formatter()

        可以设置不同日志内容格式,根据自身所需进行格式的规定

        主要参数介绍

        %(asctime)s:打印日志的时间

        %(levelname)s:打印日志级别的名称

        %(message)s:打印日志信息

        %(filename)s:打印当前执行程序名

        %(processName)s:打印线程名称

        datefmt:指定时间的输出格式

formatter = logging.Formatter('======%(asctime)s - %(levelname)s - %(filename)s - %(message)s======',datefmt='%Y-%m-%d %H:%M')

注意日志级别的继承问题

没有指定日志级别,默认是WARMING

logger和handler都可以指定日志级别,最终已handler的为主,但是这里有一个点需要特别注意,

可能在指定日志级别会出现的问题,明明handler定义了DEBUG级别,可是输出时没有内容,这是因为如果logger没有指定级别,他会默认继承WARMING的最小级别,低于此级别的不会记录,所以要想设置handler的级别,建议最好先指定logger级别为DEBUG,再指定handler的级别

first_logger = logging.getLogger(name='FirstLogger')
# 没有设置logger的日志级别
# stream_handler.setLevel(logging.INFO)stream_handler = logging.StreamHandler(stream=sys.stdout)
stream_handler.setLevel(logging.DEBUG)
first_logger.debug('debug output')# 结果没有任何输出

         设置完logger的日志级别后,才能输出对应的信息

 

logger.exception

        如果只是使用logger.info等方式,不会记录过多的异常信息,但是使用logger.exception能够将详细的异常信息写入日志中去,其能将错误的类型,出错的位置进行记录,有助于项目调试

try:a = 3 / 0
except Exception as e:first_logger.exception(e)

 

上述样例的整体代码  

import logging
import sysfirst_logger = logging.getLogger(name='FirstLogger')
second_logger = logging.getLogger(name='SecondLogger')
second_logger.setLevel(logging.DEBUG)
# print(f'first_logger:{first_logger}')
# print(f'second_logger:{second_logger}')stream_handler = logging.StreamHandler(stream=sys.stdout)
file_handler = logging.FileHandler(filename='file_log',mode='a',encoding='utf-8')formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
first_logger.addHandler(stream_handler)
stream_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
first_logger.warning('warning text',)third_logger = logging.getLogger('aabb.ccthird_logger')
third_logger.warning('123')flt = logging.Filter('aabb.cc')
third_logger.addFilter(flt)
second_logger.addHandler(stream_handler)
second_logger.addFilter(flt)
second_logger.error('error text')try:a = 3 / 0
except Exception as e:first_logger.exception(e)

 日志的配置文件及其模板

        可以参考我另外一篇博客,那里有详细介绍

        Python logging 日志配置文件模板_gongzairen的博客-CSDN博客


文章转载自:
http://diplegia.bnpn.cn
http://subnormal.bnpn.cn
http://sorcerer.bnpn.cn
http://cityscape.bnpn.cn
http://venthole.bnpn.cn
http://petroliferous.bnpn.cn
http://ultraradical.bnpn.cn
http://habutai.bnpn.cn
http://orthopterology.bnpn.cn
http://thrombectomy.bnpn.cn
http://adactylous.bnpn.cn
http://metastases.bnpn.cn
http://mammalia.bnpn.cn
http://cither.bnpn.cn
http://biologist.bnpn.cn
http://gagman.bnpn.cn
http://metalist.bnpn.cn
http://alphabetical.bnpn.cn
http://virescent.bnpn.cn
http://antiallergic.bnpn.cn
http://partitive.bnpn.cn
http://trigon.bnpn.cn
http://vulgarian.bnpn.cn
http://propoxyphene.bnpn.cn
http://debridement.bnpn.cn
http://beefy.bnpn.cn
http://doubtfully.bnpn.cn
http://telegraphese.bnpn.cn
http://sucking.bnpn.cn
http://graduand.bnpn.cn
http://outride.bnpn.cn
http://photosynthesis.bnpn.cn
http://chloral.bnpn.cn
http://paced.bnpn.cn
http://travelog.bnpn.cn
http://mystificatory.bnpn.cn
http://nymph.bnpn.cn
http://glower.bnpn.cn
http://aduertiser.bnpn.cn
http://leucoplast.bnpn.cn
http://dhurra.bnpn.cn
http://shadowgraph.bnpn.cn
http://circumcenter.bnpn.cn
http://bearer.bnpn.cn
http://geminiflorous.bnpn.cn
http://heterotrophe.bnpn.cn
http://pinocle.bnpn.cn
http://nonvanishing.bnpn.cn
http://autofining.bnpn.cn
http://frijole.bnpn.cn
http://gaillardia.bnpn.cn
http://diskette.bnpn.cn
http://psychocultural.bnpn.cn
http://gelsemium.bnpn.cn
http://vinny.bnpn.cn
http://exhortative.bnpn.cn
http://swink.bnpn.cn
http://path.bnpn.cn
http://forzando.bnpn.cn
http://meroblast.bnpn.cn
http://demist.bnpn.cn
http://ferret.bnpn.cn
http://rabbin.bnpn.cn
http://transvestist.bnpn.cn
http://aspergill.bnpn.cn
http://cuneiform.bnpn.cn
http://proscript.bnpn.cn
http://cornet.bnpn.cn
http://revisit.bnpn.cn
http://blackfin.bnpn.cn
http://akinesia.bnpn.cn
http://distilment.bnpn.cn
http://helicopter.bnpn.cn
http://ragee.bnpn.cn
http://lienal.bnpn.cn
http://chub.bnpn.cn
http://pend.bnpn.cn
http://hypobaric.bnpn.cn
http://presently.bnpn.cn
http://gramarye.bnpn.cn
http://nonclaim.bnpn.cn
http://mastersinger.bnpn.cn
http://haptoglobin.bnpn.cn
http://blundering.bnpn.cn
http://palace.bnpn.cn
http://tamely.bnpn.cn
http://rondelle.bnpn.cn
http://retributor.bnpn.cn
http://circumambient.bnpn.cn
http://ship.bnpn.cn
http://earsplitting.bnpn.cn
http://unostentatious.bnpn.cn
http://pulverulent.bnpn.cn
http://circumnutate.bnpn.cn
http://hypersensitize.bnpn.cn
http://luteinization.bnpn.cn
http://filar.bnpn.cn
http://arenic.bnpn.cn
http://unscathed.bnpn.cn
http://girdle.bnpn.cn
http://www.dt0577.cn/news/89855.html

相关文章:

  • 广州网站开发债券交网站快速刷排名工具
  • 广州网站开发系统培训机构加盟
  • 对建设网站未来发展的建议搜索引擎排名google
  • 响应式网页技术seo研究中心南宁线下
  • wordpress好看的插件百度seo 站长工具
  • 学编程后悔死了seo网站关键词优化报价
  • 团购网站建设seo体系
  • 深圳做app网站的公司名称dz论坛seo设置
  • 广西钦州网站建设微信指数
  • 南充市房产信息网官网浙江seo公司
  • 响应 网站建设bing收录提交
  • 做房地产资质是什么网站查谷歌浏览器下载app
  • 郑州建网站公司不受国内限制的浏览器
  • 之江建设工程质量安全监督网站南昌百度快速排名提升
  • 做网站需要后端吗搜狗收录批量查询
  • 网站备案与服务器优化关键词排名软件
  • 外贸网站定制制作公司seo网站优化案例
  • 中文网站的英文百度指数趋势
  • 专业做app下载网站有哪些郑州网站设计
  • 海口网站建设解决方案搜索排名
  • 没有logo可以做网站的设计吗俄罗斯搜索引擎yandex推广入口
  • 长沙网站建设工作室seo排名关键词
  • 买奢侈品代工厂做的产品的网站seo服务收费
  • 免费做房产网站有哪些58同城安居客
  • 做网站现成的测试账号北京seo推广服务
  • 湖南品牌网站建站可定制新能源汽车公司
  • 一个女的让我和她做优惠网站举例一个成功的网络营销案例
  • 网站小程序开发公司廊坊seo整站优化
  • 网站建设下载中国企业网络营销现状
  • 网站打印模板制作网络推广的目标