广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python打印日志实例分析
  • 890
分享到

python打印日志实例分析

2023-07-02 13:07:47 890人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇“python打印日志实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python打印日志实例分析”文章吧。一、必

这篇“python打印日志实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python打印日志实例分析”文章吧。

    一、必备技能

    1、logging模块的使用

    (1)5个日志等级/以及5个输出日志的内置函数

    (2)日志收集器、日志输出渠道的概念

    (3)如何自定义日志收集器

    (4)如何封装自定义的日志收集器

    二、logging

    python的官方库,打印日志用的,无需安装,使用时直接调用

    1、logging的基本使用

    1.1、日志的五个等级(DEBUG/INFO/WARNING/ERROR/CRITICAL)

    (1)DEBUG:调试模式下的日志,只给程序员看的日志

    (2)INFO:程序正常运行的时候输出的日志

    (3)WARN/WARNING:警告信息,当前程序还可以运行,后面有可能出现问题

    (4)ERROR:程序执行过程总的错误信息

    (5)CRITICAL:发生严重错误,阻塞流程,程序可能无法继续运行

    1.2、打印不同日志等级的方法:

    (1)logging.debug("调试日志信息")

    (2)logging.info("重要日志信息")

    (3)logging.warning("警告日志信息")

    (4)logging.error("错误日志信息")

    (5)logging.critical("致命日志信息")

    1.3、日志收集器和日志输出渠道:

            日志收集器:

                    默认收集器的名字为root,默认收集等级为WARNING,通过如下步骤设置收集器的等级

                    log = logging.getLogger() # 获取日志收集器,默认为root

                    log.setLevel("等级")  # 等级必须大写

                    logging.basicConfig(level=logging.DEBUG)  # 设置收集器的等级

            日志输出渠道:

                    默认输出等级为WARNING

                    输出渠道支持:输出到文件夹和输出到控制台

    Demo实例1——默认WARNING等级

    import logging# 打印不同等级的日志(debug、info、warning、error、critical)# 如下5条日志,只会打印WARNING等级以后的日志logging.debug("这是一条debug级别的日志")logging.info("这是一条info级别的日志")logging.warning("这是一条warning级别的日志")logging.error("这是一条error级别的日志")logging.critical("这是一条critical级别的日志")

    运行结果 :(只会打印WARNING级别以上的日志)

    WARNING:root:这是一条warning级别的日志
    ERROR:root:这是一条error级别的日志
    CRITICAL:root:这是一条critical级别的日志

    Demo实例2——默认的日志收集器

    import logging# # logging.basicConfig(level=logging.DEBUG) 设置日志级别# 未指定name,默认返回自带的默认的root收集器# 默认输出WARN级别以上的等级日志# 如果设置了WARNING以下的等级,则输出WARNING等级以上的日志# 如果设置了WARNING以上的等级,比如设置了ERROR,则输出ERROR等级以上的日志log = logging.getLogger()# log.setLevel("DEBUG")# log.setLevel("INFO")# log.setLevel("WARNING")log.setLevel("ERROR")# log.setLevel("CRITICAL")  logging.debug("这是一条debug级别的日志")logging.info("这是一条info级别的日志")logging.warning("这是一条warning级别的日志")logging.error("这是一条error级别的日志")logging.critical("这是一条critical级别的日志")

     运行结果:

    ERROR:root:这是一条error级别的日志
    CRITICAL:root:这是一条critical级别的日志

    2、自定义日志收集器

    2.1、创建日志收集器

          log = logging.getLogger(name="rose_logger")

            不传name参数时,默认返回收集器名字为“root”

            传了name参数时,会创建一个新的日志收集器

    2、创建日志收集渠道

    (1)输出到控制台:

            PyCharm = logging.StreamHandler()

    (2)输出到文件:    

            file = logging.FileHandler(os.getcwd()+r"\rose.log",encoding="utf-8")

            file=handlers.TimedRotatingFileHandler(filename="test.log",when="D",interval=1,backupCount=10,encoding="utf-8")

            注意点(参数):

            filename, 日志的文件名称(包含路径)

            when= 'h', 日志的切割单位

            # S - Seconds 秒

            # M - Minutes 分钟

            # H - Hours 小时

            # D - Days 天(24小时)

            # midnight - roll over at midnight 日切

            # W{0-6} - roll over on a certain day; 0 - Monday 周

            interval=1, 滚动周期,与when='h'连动,1-表示以时间为周期

            backupCount=0 保留日志文件的个数,设置为10,永远只保存最近的10个文件

    2.3、创建日志的输出格式 (1)创建日志格式对象

            pycharm_fmt = logging.FORMatter(fmt=fmt1)

    (2)将日志输出格式绑定到日志输出渠道

            pycharm.setFormatter(fmt=pycharm_fmt)  ——设置到控制台日志渠道

            file.setFormatter(fmt=pycharm_fmt1)——设置到文件日志渠道

    (3)常用的格式模板(也可以自己定义)

            fmt1 = "%(asctime)s - [%(funcName)s-->line:%(lineno)d] - %(levelname)s:%(message)s"

            fmt2 = '[%(asctime)s-%(name)s-%(levelname)s-%(filename)s-%(lineno)d]:%(message)s'

    (4)格式必须按照指定的格式格式化。常用的如下:

            %(asctime)s——当前时间

            %(funcName)s——模块名

            %(lineno)d——行号

            %(levelname)s——日志等级名称

             %(message)s——具体的日志内容 

       Demo实例3——自定义日志收集器和日志格式

    import logging,osfrom logging import handlers# 1、创建日志收集器log = logging.getLogger(name="rose_logger") # 2、创建日志收集渠道# 输出控制台pycharm = logging.StreamHandler()# 输出文件夹file = logging.FileHandler(os.getcwd()+r"\rose.log",encoding="utf-8")# file = handlers.TimedRotatingFileHandler(filename="test.log",when="D",interval=1,backupCount=10,encoding="utf-8") # 3、创建日志的输出格式fmt1 = "%(asctime)s - [%(funcName)s-->line:%(lineno)d] - %(levelname)s:%(message)s"# 创建一个日志输出对象pycharm_fmt = logging.Formatter(fmt=fmt1)fmt2 = '[%(asctime)s-%(name)s-%(levelname)s-%(filename)s-%(lineno)d]:%(message)s'pycharm_fmt1 = logging.Formatter(fmt=fmt2) # 4、日志输出格式绑定到日志输出渠道pycharm.setFormatter(fmt=pycharm_fmt)file.setFormatter(fmt=pycharm_fmt1) # 5、直接给收集器设置日志级别就可以了,渠道会继承收集器的日志级别log.setLevel(level=logging.DEBUG)# 5、给收集渠道设置日志级别,文件渠道,控制台输出的级别不会一样# pycharm.setLevel(logging.DEBUG) # 6、将日志收集渠道绑定到日志收集器log.addHandler(pycharm)log.addHandler(file) log.info(msg="测试")

    输出结果:

    python打印日志实例分析

    Demo实例4——封装自定义日志收集器

    import loggingfrom logging import handlersdef create_log(name,level,filename,sh_level,fh_level):    """    :param name:  日志收集器名字    :param level: 日志收集器的等级    :param filename:  日志文件的名称    :param sh_level:  控制台输出日志的等级    :param fh_level:    文件输出日志的等级    :return: 返回创建好的日志收集器    """     # 1、创建日志收集器    log = logging.getLogger(name)     # 2、创建日志收集器的等级    log.setLevel(level=level)     # 3、创建日志收集渠道和等级    sh = logging.StreamHandler()    sh.setLevel(level=sh_level)    log.addHandler(sh)    fh = logging.FileHandler(filename=filename,encoding="utf-8")    # fh2 = handlers.TimedRotatingFileHandler(filename=filename,when="D",interval=1,backupCount=10,encoding="utf-8")    fh.setLevel(level=fh_level)    log.addHandler(fh)     # 4、设置日志的输出格式    formats = "%(asctime)s - [%(funcName)s-->line:%(lineno)d] - %(levelname)s:%(message)s"    log_format = logging.Formatter(fmt=formats)    sh.setFormatter(log_format)    fh.setFormatter(log_format)    return log if __name__ == '__main__':    log = create_log(name="rose_log",level=logging.DEBUG,filename="test_log.log",sh_level=logging.DEBUG,fh_level=logging.DEBUG)    log.info(msg="--------debug--------")    log.info(msg="--------info--------")    log.info(msg="--------warning--------")    log.info(msg="--------error--------")    log.info(msg="--------critical--------")

    输出结果:

    python打印日志实例分析

    以上就是关于“python打印日志实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网Python频道。

    --结束END--

    本文标题: python打印日志实例分析

    本文链接: https://www.lsjlt.com/news/342083.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • python打印日志实例分析
      这篇“python打印日志实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python打印日志实例分析”文章吧。一、必...
      99+
      2023-07-02
    • log4j2中日志异步打印的示例分析
      这篇文章给大家分享的是有关log4j2中日志异步打印的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。log4j2支持日志的异步打印,日志异步输出的好处在于,使用单独的进程来执行日志打印的功能,可以提高日志...
      99+
      2023-05-30
      log4j2
    • MySQL慢查询日志不打印的示例分析
      这篇文章给大家分享的是有关MySQL慢查询日志不打印的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 测试环境修改 long_query_t...
      99+
      2022-10-18
    • python中打印日志
      一、日志介绍 1、日志级别:日志的优先级、重要性或者严重程度 2、日志的作用:调试程序,跟踪定位bug,分析用户行为与数据统计 3、常见的日志级别(从小级别到大级别排序):         debug:调试级别,打印非常详细的日志信息,通常...
      99+
      2023-09-25
      python
    • mybatis log4j2打印sql+日志实例代码
      目录前言基于maven的springboot第二种 jdk6,普通jar包的springmvc总结前言 将采用slf+log4j2方式进行打印日志,以下用两种方式,一种基于maven...
      99+
      2022-11-13
    • SSM框架下结合log4j、slf4j打印日志的示例分析
      这篇文章主要介绍SSM框架下结合log4j、slf4j打印日志的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:首先加入log4j和slf4j的jar包 <!-- 日志处理&...
      99+
      2023-05-30
      log4j ssm slf4j
    • springboot打印接口调用日志的实例
      目录概述方案思路封装HttpServletRequest请求把可重复读请求体通过过滤器往下传记录入参日志实现入参记录拦截器注册拦截器记录返参日志概述 请求日志几乎是所有大型企业级项目...
      99+
      2022-11-13
    • Python中的logging模块实现日志打印
      目录方法1:配置并输出日志到标准输出方法2:配置输出到日志文件前言: 大家在写代码的时候,经常会使用print打印日志方便排查问题,然而print的问题就是太过简单,缺少时间、日志级...
      99+
      2022-11-13
    • python中如何打印日志信息
      日志打印方式 常见的Python日志打印方式为使用内置函数print()或者logging模块打印日志。 print()只能将日志打印至控制台,不推荐此方式logging模块默认将日志打印至控制台,也...
      99+
      2023-09-05
      python
    • springboot实现打印彩色日志
      springboot打印彩色日志 logback配置 <?xml version="1.0" encoding="UTF-8"?> <confi...
      99+
      2022-11-12
    • Java日志性能实例分析
      这篇文章主要介绍“Java日志性能实例分析”,在日常操作中,相信很多人在Java日志性能实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java日志性能实例分析”的疑惑有所帮助!接下来,请跟着小编一起来...
      99+
      2023-06-19
    • 源码分析SpringMvc日志打印被忽略输出问题
      目录1.写在前面2.问题引出3.截取源码分析4.截取问题处理1.写在前面 在java的开发过程中,涉及到java web的开发,基本上都是走spring这一套了。 我们之前一般来说,...
      99+
      2022-11-13
    • Android中安全地打印日志的示例
      这篇文章主要介绍了Android中安全地打印日志的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在Android开发过程中,不管是写Demo还是实战项目中,都会打印一些日...
      99+
      2023-05-30
    • web打印的示例分析
      小编给大家分享一下web打印的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目中有个需求是将winform客户端的打印...
      99+
      2022-10-19
    • python分析nginx日志
      利用python脚本分析nginx日志内容,默认统计ip、访问url、状态,可以通过修改脚本统计分析其他字段。一、脚本运行方式python count_log.py -f med.xxxx.com.access.log二、脚本内容#!/us...
      99+
      2023-01-31
      日志 python nginx
    • MySQL慢日志查询实例分析
      本篇内容介绍了“MySQL慢日志查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、慢查询日志概...
      99+
      2022-10-19
    • MySQL日志的详细分析实例
      目录前言1.日志刷新操作2.错误日志3.一般查询日志4.慢查询日志5.二进制日志5.1 二进制日志文件5.2 查看二进制日志5.2.1 mysqlbinlog5.2.2 show b...
      99+
      2022-11-13
    • go语言日志实现详解(打印日志、日志写入文件和日志切割)
      目录Go语言内置的log包实现了简单的日志服务Logger标准logger的配置配置日志前缀(SetPrefix)配置日志输出位置创建新logger对象日志库级别runtime.Ca...
      99+
      2022-11-11
    • 使用logback实现日志打印过滤
      logback日志打印过滤 1.只打印sql语句以及参数 <?xml version="1.0" encoding="UTF-8" ?> <co...
      99+
      2022-11-12
    • springboot怎么实现打印彩色日志
      这篇文章主要为大家展示了“springboot怎么实现打印彩色日志”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springboot怎么实现打印彩色日志”这篇文章吧。springboot打印彩色...
      99+
      2023-06-20
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作