• python logging模块学习


    logging 是对程序运行中的日志进行输出记录,用户在程序中设置在哪个地方输出什么信息,方便进行之后问题的排查。

    logging输出有两种方式:输出至控制台 、 输出至文件

    输出至控制台:

    import logging
    logging.warning('Watch out!')  
    logging.info('I told you so')  

    运行上述代码,我们会在控制台看到如下输出:

    WARNING:root:Watch out!

    info消息并没有出现,这是因为logging默认的输出等级是warn 。

    如果想要更改logging的输出等级:在使用logging输出日志前加上语句: logging.basicConfig(level=logging.INFO)

    输出至文件:

    import logging
    
    logging.basicConfig(filename="mylog.log")
    
    logging.info("I told you so")
    logging.warning("Watch out!")

    通过在logging.basicConfig 中设置filename,就可以将日志信息输出至指定文件中保存了。同样,默认等级还是Warn。

    多次运行上述代码,会发现每次输出的日志信息都会追加在文件后面。

    如果想要每次都清空之前的日志信息:使用 filemode 参数,设置 filemode = "w" 。 如果不设置,filemode 默认为 "a"

    logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO)

     另外,对于basicConfig() 的调用应该在 info()、warning() 的前面: 因为他被设定为一次性的配置,只有第一次调用会产生操作,随后调用不会再生效(如果没有在一开始指定,那么就会走默认的配置)

    自定义日志展示格式:

    如果想在每条日志上展示更多的信息,如显示等级、时间日期、模块、行数等,使用basicConfig 中的 format参数来实现

    import logging
    
    logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO, format='%(asctime)s %(name)s %(levelname)s %(module)s:%(lineno)d %(message)s')
    
    logging.info("I told you so")
    logging.warning("Watch out!")
    
    # 文件日志展示
    2021-10-29 15:50:13,378 root INFO file_logging:10 I told you so
    2021-10-29 15:50:13,380 root WARNING file_logging:11 Watch out!

    日期/时间展示的默认格式如上,如果想要更多的控制日期/时间展示格式,使用datefmt参数

    import logging
    
    logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO, format='%(asctime)s %(name)s %(levelname)s %(module)s:%(lineno)d %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
    
    logging.info("I told you so")
    logging.warning("Watch out!")
    
    # 文件日志展示
    10/29/2021 03:53:03 PM root INFO file_logging:10 I told you so
    10/29/2021 03:53:03 PM root WARNING file_logging:11 Watch out!
    猪猪侠要努力呀!
  • 相关阅读:
    Linux九阴真经之催心掌残卷5(正则表达式)
    Linux九阴真经之催心掌残卷4(grep文本处理 )
    Linux九阴真经之催心掌残卷3
    Linux九阴真经之催心掌残卷2
    0.1.kubeadm快速部署kubernetes
    0.2.kubeadm搭建kubernetes高可用集群(CentOS)
    Nginx——模块(1)
    Nginx——主配置段
    Nginx——安装
    Nginx——I/O模型
  • 原文地址:https://www.cnblogs.com/mlllily/p/15480880.html
Copyright © 2020-2023  润新知