Python 中借助日志记录库使用 Log4j的过程记录

 更新时间:2023年07月10日 15:19:36   作者:迹忆客  
这篇文章主要介绍了在 Python 中借助日志记录库使用 Log4j,本文解释了什么是 log4j,它是如何工作的,以及我们为什么要使用它,需要的朋友可以参考下

本文解释了什么是 log4j,它是如何工作的,以及我们为什么要使用它。 我们还将了解如何借助日志库在 Python 编程语言中使用 log4j。

Log4j 概述及其使用重要性

log4j 是程序员在应用程序中记录数据时用来帮助他们的一款软件。 而且,记录数据意味着记录在应用程序中执行的活动或操作。

出于安全原因,我们可以使用 log4j,例如查看各种身份验证。 但是,它也可以用于记录应用程序中发生的事情以进行调试。

或者大致了解应用程序一直在做什么。 例如,log4j 是 Java 编程语言中的一个框架,它是一个半构建应用程序。

同样,在 Python 中,我们使用了日志记录模块而不是 log4j。 日志记录是将应用程序操作和状态记录到辅助接口的过程。 换句话说,将您的程序操作写入一个文件,但是您如何开始记录呢?

那么,您需要熟悉日志记录级别。 每个日志库都允许您在特定级别锁定信息。 您必须了解五个主要的日志记录级别。

级别说明
debug调试级别用于开发过程或错误修复和故障排除。 所有特定于开发人员的信息都在这一层之下。
info信息级别用于记录程序的任何重要默认操作,例如默认用户或系统查看操作。
warning警告级别用于记录从长远来看可能成为错误的事件。 此日志记录级别应该可以帮助您追踪错误。
error错误级别用于记录错误,错误是会以某种错误方式影响程序执行的错误。
critical临界级别为世界末日; 该程序已死或已严重损坏。

在 Python 中的日志记录库的帮助下使用 Log4j

现在我们只是运行一个简单的基本代码,并没有这样的逻辑,但我们想向您展示一些理解,比如如何将所有日志写入一个文件。

让我们进入代码,首先配置日志系统,调用 basicConfig() 方法,并使用 filename 参数传入文件名。 Python 会将所有日志消息写入此文件; 如果它不存在,Python 将创建它。

后面的参数是filemode,意思是file mode就是说是append mode到write mode还是随便你放什么,默认情况下,文件会以append mode创建。 接下来是表示asctime、levelname、message等很多信息的格式。

asctime 基本上显示了它在这个与日志相关的特定文本文件中打印的时间类型。 第二个参数值是一个叫做levelname的东西; 这个参数告诉我们在执行过程中发生了什么样的错误。

该消息是我们试图在该日志消息中打印的所有消息。 我们正在使用 datefmt; 此参数将按特定顺序打印时间。

basicConfig() 函数有一个不同的属性,我们可以从这里阅读所有属性。

import logging
logging.basicConfig(filename='demo.txt',
                    filemode='a',
                    format='%(asctime)s %(levelname)s-%(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
Now we have written a simple logic where we compare the percentile with some numbers and append some logs inside the text file.
for i in range(0,15):
    if i%2==0:
        logging.error('Log error message')
    elif i%3==0:
        logging.warning('Log warning message')
    elif i%5==0:
        logging.debug('Log debug message') 
    elif i%7==0:
        logging.critical('Log critical message')
    else:
        logging.info('Log info message')

输出:

2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 WARNING-Log warning message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 CRITICAL-Log critical message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 WARNING-Log warning message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message

运行程序后,我们可以注意到文本文件中没有添加信息和调试日志,因为默认情况下,levelname 调用错误,错误级别不显示信息和调试。

但是,我们可以通过在传递 logging.DEBUG 时使用 level 参数来使用其他级别。

level=logging.DEBUG

现在,如果我们运行并打开 demo.txt 文件,我们将看到所有日志消息,但如果我们将日志级别更新为 logging.ERROR,我们将看到错误和关键消息。

2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 WARNING-Log warning message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 DEBUG-Log debug message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 CRITICAL-Log critical message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 WARNING-Log warning message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message

让我们来看一个常见的问题,我们要将任何数字除以零。 要确定此操作,我们将使用 try 块。

如果操作失败,我们将进入 except 块并显示日志错误。

try:
    1/0
except:
    logging.error('Log zero division error occurs')

输出:

2022-09-02 00:29:48 ERROR-Log zero division error occurs

它是项目的重要组成部分,因为无论何时处理项目,您都可能必须编写这种日志记录机制。

完整的 Python 代码:

import logging
logging.basicConfig(filename='demo.txt',
                    filemode='w',
                    format='%(asctime)s %(levelname)s-%(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    level=logging.DEBUG)
# for i in range(0,15):
#     if i%2==0:
#         logging.error('Log error message')
#     elif i%3==0:
#         logging.warning('Log warning message')
#     elif i%5==0:
#         logging.debug('Log debug message') 
#     elif i%7==0:
#         logging.critical('Log critical message')
#     else:
#         logging.info('Log info message')
try:
    1/0
except:
    logging.error('Log zero division error occurs')

到此这篇关于在 Python 中借助日志记录库使用 Log4j的文章就介绍到这了,更多相关Python日志记录库使用 Log4j内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 玩转Python图像处理之二值图像腐蚀详解

    玩转Python图像处理之二值图像腐蚀详解

    这篇文章主要给大家介绍了关于Python图像处理之二值图像腐蚀的相关资料,对原图进行二值化后,选择不同的结构元素对其进行膨胀和腐蚀运算处理,并仿真出图像结果,需要的朋友可以参考下
    2021-09-09
  • tensorflow之自定义神经网络层实例

    tensorflow之自定义神经网络层实例

    今天小编就为大家分享一篇tensorflow之自定义神经网络层实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python中关于tqdm的用法

    python中关于tqdm的用法

    这篇文章主要介绍了python中关于tqdm的用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 网易有道2017内推编程题 洗牌(python)

    网易有道2017内推编程题 洗牌(python)

    这篇文章主要为大家详细介绍了网易有道2017内推编程题:洗牌,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 关于Pytorch的MNIST数据集的预处理详解

    关于Pytorch的MNIST数据集的预处理详解

    今天小编就为大家分享一篇关于Pytorch的MNIST数据集的预处理详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python使用循环打印所有三位数水仙花数的实例

    python使用循环打印所有三位数水仙花数的实例

    今天小编就为大家分享一篇python使用循环打印所有三位数水仙花数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Alpine安装Python3依赖出现的问题及解决方法

    Alpine安装Python3依赖出现的问题及解决方法

    这篇文章主要介绍了Alpine安装Python3依赖出现的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • python文件操作相关知识点总结整理

    python文件操作相关知识点总结整理

    这篇文章主要介绍了python文件操作相关知识点,整理汇总了Python文件操作所涉及的常见函数与方法,并给出了实例代码予以总结归纳,需要的朋友可以参考下
    2016-02-02
  • python3使用logging包,如何把日志写到系统的rsyslog中

    python3使用logging包,如何把日志写到系统的rsyslog中

    这篇文章主要介绍了python3使用logging包,如何把日志写到系统的rsyslog中的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • django DRF图片路径问题的解决方法

    django DRF图片路径问题的解决方法

    这篇文章主要给大家介绍了关于django DRF图片路径问题的解决方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09

最新评论