zoukankan      html  css  js  c++  java
  • 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!
    猪猪侠要努力呀!
  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/mlllily/p/15480880.html
Copyright © 2011-2022 走看看