Python实战 | 使用 Python 的日志库(logging)和 pandas 库对日志数据进行分析

专栏集锦,大佬们可以收藏以备不时之需

Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html

Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html

Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html

tensorflow专栏:https://blog.csdn.net/superdangbo/category_8691332.html

Redis专栏:https://blog.csdn.net/superdangbo/category_9950790.html

Spring Cloud实战:

Spring Cloud 实战 | 解密Feign底层原理,包含实战源码

Spring Cloud 实战 | 解密负载均衡Ribbon底层原理,包含实战源码

1024程序员节特辑文章:

1024程序员狂欢节特辑 | ELK+ 协同过滤算法构建个性化推荐引擎,智能实现“千人千面”

1024程序员节特辑 | 解密Spring Cloud Hystrix熔断提高系统的可用性和容错能力

1024程序员节特辑 | ELK+ 用户画像构建个性化推荐引擎,智能实现“千人千面”

1024程序员节特辑 | OKR VS KPI谁更合适?

1024程序员节特辑 | Spring Boot实战 之 MongoDB分片或复制集操作

Spring实战系列文章:

Spring实战 | Spring AOP核心秘笈之葵花宝典

Spring实战 | Spring IOC不能说的秘密?

国庆中秋特辑系列文章:

国庆中秋特辑(八)Spring Boot项目如何使用JPA

国庆中秋特辑(七)Java软件工程师常见20道编程面试题

国庆中秋特辑(六)大学生常见30道宝藏编程面试题

国庆中秋特辑(五)MySQL如何性能调优?下篇

国庆中秋特辑(四)MySQL如何性能调优?上篇

国庆中秋特辑(三)使用生成对抗网络(GAN)生成具有节日氛围的画作,深度学习框架 TensorFlow 和 Keras 来实现

国庆中秋特辑(二)浪漫祝福方式 使用生成对抗网络(GAN)生成具有节日氛围的画作

国庆中秋特辑(一)浪漫祝福方式 用循环神经网络(RNN)或长短时记忆网络(LSTM)生成祝福诗词

1、Python中logging日志库

Python 的日志库(logging)提供了一个灵活的日志记录系统。以下是如何使用 Python 的 logging 库进行日志记录的简单示例:

  1. 首先,导入 logging 库:
import logging  
  1. 接下来,配置日志记录的基本设置,例如日志级别、日志格式和日志文件名:
logging.basicConfig(level=logging.DEBUG,  
                    format='%(asctime)s - %(levelname)s - %(message)s',  
                    filename='app.log',  
                    filemode='w')  

这里,我们将日志级别设置为 DEBUG,日志格式为时间 - 级别 - 消息,并将日志记录保存到名为 app.log 的文件中。
3. 然后,使用 logging 库的不同级别和方法进行日志记录:

logging.debug('This is a debug log.')  
logging.info('This is an info log.')  
logging.warning('This is a warning log.')  
logging.error('This is an error log.')  
logging.critical('This is a critical log.')  

这些日志记录将分别对应不同的日志级别,从低到高依次为:DEBUG、INFO、WARNING、ERROR、CRITICAL。
4. 运行上述代码后,您将在当前目录下看到一个名为 app.log 的日志文件,其中包含了您刚刚记录的日志。文件内容如下:

2021-01-01 12:34:56,789 - DEBUG - This is a debug log.  
2021-01-01 12:34:56,789 - INFO - This is an info log.  
2021-01-01 12:34:56,789 - WARNING - This is a warning log.  
2021-01-01 12:34:56,789 - ERROR - This is an error log.  
2021-01-01 12:34:56,789 - CRITICAL - This is a critical log.  

以上示例展示了如何使用 Python 的 logging 库进行基本的日志记录。您可以根据实际需求调整日志级别、格式和其他设置。如果您希望同时在控制台和文件中输出日志,可以不设置filemode参数,这样日志将同时输出到控制台和文件。此外,您还可以使用handlers参数配置日志处理器,以实现更复杂的日志记录需求。

2、使用 Python 的日志库(logging)和 pandas 库对日志数据进行分析

在 Python 中,实现日志收集和分析的方法有很多,这里我为您介绍一个简单的示例,使用 Python 的日志库(logging)和 pandas 库对日志数据进行分析。
首先,请确保已安装 pandas 库,如果尚未安装,请使用以下命令进行安装:

pip install pandas  

以下是一个简单的 Python 日志收集和分析示例:

  1. 导入所需的库:
import logging  
import pandas as pd  
  1. 设置日志格式:
logging.basicConfig(level=logging.DEBUG,  
                    format='%(asctime)s - %(levelname)s - %(message)s')  
  1. 模拟日志数据:
log_data = [  
    {'timestamp': '2021-01-01 00:00:00', 'level': 'DEBUG', 'message': 'This is a debug log.'},  
    {'timestamp': '2021-01-01 00:01:00', 'level': 'INFO', 'message': 'This is an info log.'},  
    {'timestamp': '2021-01-01 00:02:00', 'level': 'WARNING', 'message': 'This is a warning log.'},  
    {'timestamp': '2021-01-01 00:03:00', 'level': 'ERROR', 'message': 'This is an error log.'},  
]
  1. 将日志数据保存到 CSV 文件:
import os
if not os.path.exists('logs'):  
    os.makedirs('logs')
with open('logs/log_data.csv', 'w', newline='', encoding='utf-8') as csvfile:  
    fieldnames = ['timestamp', 'level', 'message']  
    writer = pd.writer(csvfile, fieldnames=fieldnames)  
    writer.writerow(fieldnames)  
    for log in log_data:  
        writer.writerow(log)  
  1. 使用 pandas 读取 CSV 文件,并对其进行分析:
import pandas as pd
log_df = pd.read_csv('logs/log_data.csv')
# 按日志级别统计数量  
level_counts = log_df['level'].value_counts()  
print("日志级别统计:")  
print(level_counts)
# 按时间分析日志  
hour_counts = log_df.groupby('timestamp').hour().value_counts()  
print("\n按小时统计:")  
print(hour_counts)
# 按日志级别和时间进行分组,统计日志数量  
grouped_logs = log_df.groupby(['level', 'timestamp']).size().unstack(fill_value=0)  
print("\n按级别和时间分组的日志数量:")  
print(grouped_logs)  

以上代码将模拟的日志数据保存到 CSV 文件,并使用 pandas 对其进行简单的统计和分析。实际应用中,您可以根据需要修改日志收集和分析的逻辑。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年11月9日
下一篇 2023年11月9日

相关推荐