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 对其进行简单的统计和分析。实际应用中,您可以根据需要修改日志收集和分析的逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/134513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【今日文章】:如何用css 实现星空效果

【今日文章】:如何用css 实现星空效果 需求实现tips: 需求 用CSS 实现星空效果的需求: 屏幕上有“星星”,且向上移动。移动的时候,动画效果要连贯,不能出现闪一下的样子。 实现 这里我们需要知道,“星星”是…

阿里云服务器云盘性能IOPS和吞吐量说明SSD、ESSD和高效

阿里云服务器系统盘或数据盘支持多种云盘类型,如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等,阿里云百科aliyunbaike.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延等性…

电脑发热发烫,具体硬件温度达到多少度才算异常?

环境: 联想E14 问题描述: 电脑发热发烫,具体硬件温度达到多少度才算异常? 解决方案: 电脑硬件的温度正常范围会因设备类型和使用的具体硬件而有所不同。一般来说,以下是各种硬件的正常温度范围: CPU:正…

TensorFlow2.0教程2-全连接神经网络以及深度学习技巧

文章目录 基础MLP网络1.回归任务2.分类任务mlp及深度学习常见技巧1.基础模型2.权重初始化3.激活函数4.优化器5.批正则化6.dropout基础MLP网络 1.回归任务 import tensorflow as tf import tensorflow.keras as keras import tensorflow.keras.layers as layers# 导入数据 (x_t…

软件设计模式的意义

软件设计模式的意义 所有开发人员都应该接触过软件设计模式这个概念,看过《设计模式-可复用的对象软件的基础》这本书,在面试中都被问过: 你用过哪些设计模式这种问题。但很大可能也就仅此而已了。 为什么好像只能从框架中找到设计模式的应用…

kubernetes(5) 续4

目录 volumes emptyDir卷 hostpath卷 nfs卷 持久卷 storageclass statefulset控制器 mysql主从部署 volumes emptyDir卷 [rootk8s2 volumes]# vim emptydir.yaml apiVersion: v1 kind: Pod metadata:name: vol1 spec:containers:- image: busyboxplusname: vm1command: ["…

3D视觉引导纸箱拆码垛,助力物流行业转型升级

近年来,自动化和智能化技术在各行业的应用越来越广泛,特别是在物流和仓储领域。纸箱拆码垛是物流仓储中的一个重要环节。 人工分拣效率低、错误率高、成本高,传统的拆码垛设备存在兼容性差,对纸箱的识别率不高、操作不灵活等问题…

jsp多层弹框,让弹框出现在最外层,最顶层

如下图所示,给该弹框添加样式,z-index:5 这个值要比已经弹出的弹框的值大,

Next.js 项目——从入门到入门(Eslint+Prettier)

Next.js官方文档地址 什么是 Next.js 这是一个用于生产环境的 React 框架。 Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验:包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包、 路由预取等功能 无需任何配置。 功能: 功能说…

Ubuntu 18.04.6 LTS安装docker和docker-compose、镜像导入导出

Ubuntu 18.04.6 LTS安装docker和docker-compose、镜像导入导出 文章目录 Ubuntu 18.04.6 LTS安装docker和docker-compose、镜像导入导出安装docker更新数据源,安装必要插件添加GPG密钥设置存储库再更新apt包索引安装docker-ce查看docker状态运行docker hello-world …

Gin学习笔记

Gin学习笔记 Gin文档:https://pkg.go.dev/github.com/gin-gonic/gin 1、快速入门 1.1、安装Gin go get -u github.com/gin-gonic/gin1.2、main.go package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {// 创建路由引…

LeetCode 热题100——链表专题(二)

一、环形链表 141.环形链表(题目链接) 思路:使用快慢指针,慢指针走一步,快指针走俩步,如果是环形链表,那么快慢指针一定相遇,如果不是环形结构那么快指针或者快指针的next一定先为N…

概率论和数理统计(一)概率的基本概念

前言 生活中对于事件的发生,可以概括为 确定现象:在一定条件下必然发生,如日出随机现象:在个别试验中其结果呈现出不确定性,在大量重复试验中其结果又具有统计规律的现象,称之为随机现象。 随机现象的特点&#xff…

TCP/IP的基础知识

文章目录 TCP/IP的基础知识硬件(物理层)网络接口层(数据链路层)互联网层(网络层)TCP/IP的具体含义传输层应用层(会话层以上的分层)TCP/IP分层模型与通信示例发送数据包的一个例子接收…

【公益案例展】火山引擎公益电子票据服务——连接善意,共创美好

‍ 火山引擎公益案例 本项目案例由火山引擎投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2023中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 捐赠票据是慈善组织接受捐赠后给捐赠方开具的重要凭证&…

Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)

准备工作 这里我们准备了两个与数据库表对应的实体类,stu为学生表,cls为班级表 类属性上的注解如 TableId等 为Mybatis-Plus的注解,使用mybatis会无视掉这些注解 在Stu 类的最后一个属性我们定义了Cls实体类的对象,对于单表查询&…

Dcoker学习笔记(一)

Dcoker学习笔记一 一、 初识Docker1.1 简介1.2 虚拟机和docker的区别1.3 Docker架构1.4 安装Docker(Linux) 二、 Dcoker基本操作2.1 镜像操作2.2 容器操作练习 2.3 数据卷volume(容器数据管理)简介数据卷语法数据卷挂载 2.4 自定义…

高性能三防工业平板电脑 防摔防爆电容屏工控平板

HT1000是一款高性能工业三防平板,10.1英寸超清大屏,厚度仅14.9mm,超薄机身,可轻松插入袋中,方便携带,搭载8核2.0GHz高性能CPU,行业领先的Android 11.0,设备性能大幅提升,…

机器人制作开源方案 | 管内检测维护机器人

一、作品简介 作者:李泽彬,李晋晟,杜张坤,禹馨雅 单位:运城学院 指导老师:薛晓峰 随着我国的社会主义市场经济的飞速发展和科学技术的革新,各行各业的发展越来越离不开信息化和网络化的…

【深度学习】卷积层填充和步幅以及其大小关系

参考链接 【深度学习】:《PyTorch入门到项目实战》卷积神经网络2-2:填充(padding)和步幅(stride) 一、卷积 卷积是在深度学习中的一种重要操作,但实际上它是一种互相关操作,,首先我们来了解一下二维互相关&#xff…