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 socket如何解析HTTP请求内容

    Python socket如何解析HTTP请求内容

    这篇文章主要介绍了Python socket如何解析HTTP请求内容,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Python解决C盘卡顿问题及操作脚本示例

    Python解决C盘卡顿问题及操作脚本示例

    这篇文章主要为大家介绍了Python解决C盘卡顿问题脚本示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python3实现二叉树的最大深度

    Python3实现二叉树的最大深度

    这篇文章主要介绍了Python3实现二叉树的最大深度, 文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 一文带你精通Python中exec函数的高级技巧

    一文带你精通Python中exec函数的高级技巧

    在 Python 中,exec 是一个内置函数,允许在运行时动态执行 Python 代码,本文将详细介绍 Python exec 函数的高级用法,包括动态代码生成、执行外部文件等内容,希望对大家有所帮助
    2023-11-11
  • Python用input输入列表的实例代码

    Python用input输入列表的实例代码

    在本篇文章里小编给大家整理的是关于Python用input输入列表的实例代码,需要的朋友们可以参考下。
    2020-02-02
  • python实现Excel文件转换为TXT文件

    python实现Excel文件转换为TXT文件

    这篇文章主要为大家详细介绍了python实现Excel文件转换为TXT文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • python groupby函数实现分组选取最大值与最小值

    python groupby函数实现分组选取最大值与最小值

    这篇文章主要介绍了python groupby函数实现分组选取最大值与最小值,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • python getpass实现密文实例详解

    python getpass实现密文实例详解

    这篇文章主要介绍了python getpass实现密文实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python函数的定义与调用方法实例

    Python函数的定义与调用方法实例

    Python 中函数的应用非常广泛,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,这篇文章主要给大家介绍了关于Python函数的定义与调用的相关资料,需要的朋友可以参考下
    2023-06-06
  • Python中一些自然语言工具的使用的入门教程

    Python中一些自然语言工具的使用的入门教程

    这篇文章主要介绍了Python中一些自然语言工具的使用的入门教程,本文来自于IBM官方网站技术文档,需要的朋友可以参考下
    2015-04-04

最新评论