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的合并字典的四种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 利用python对excel中一列的时间数据更改格式操作

    利用python对excel中一列的时间数据更改格式操作

    这篇文章主要介绍了利用python对excel中一列的时间数据更改格式操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 50行Python代码实现人脸检测功能

    50行Python代码实现人脸检测功能

    现在的人脸识别技术已经得到了非常广泛的应用,支付领域、身份验证、美颜相机里都有它的应用。下面小编给大家带来了基于50行Python代码实现人脸检测功能,一起看看吧
    2018-01-01
  • python单例设计模式实现解析

    python单例设计模式实现解析

    这篇文章主要介绍了python单例设计模式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)

    这篇文章主要介绍了使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • odoo字段访问控制的操作方法

    odoo字段访问控制的操作方法

    在 Odoo 中,可以通过几种方式实现字段的访问控制ÿ0c;包括通过模型安全规则、记录规则和字段属性来限制字段的访问,这篇文章主要介绍了odoo字段访问控制的相关操作,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Python Pandas 箱线图的实现

    Python Pandas 箱线图的实现

    这篇文章主要介绍了Python Pandas 箱线图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Django 静态文件配置过程详解

    Django 静态文件配置过程详解

    这篇文章主要介绍了Django 静态文件配置过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python调用C++,通过Pybind11制作Python接口

    Python调用C++,通过Pybind11制作Python接口

    今天小编就为大家分享一篇关于Python调用C++,通过Pybind11制作Python接口,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 利用Pandas索引和选取数据方法详解

    利用Pandas索引和选取数据方法详解

    使用Pandas做数据分析的时候,用的最多的功能恐怕就是对于数据集的索引,选组数据子集。Pandas库提供了很多非常实用的方法,了解并熟练使用这些方法而不是用for循环的方法将会事半功倍。在这一篇文章中,我们将着重介绍这些方法
    2021-10-10

最新评论