Python Pratique | Utilisez la bibliothèque de journalisation de Python (logging) et la bibliothèque pandas pour analyser les données des journaux

Une collection de colonnes que vous pouvez enregistrer en cas d'urgence

Chronique pratique Spring Cloud :https://blog.csdn.net/superdangbo/category_9270827.html

Chronique pratique Python :https://blog.csdn.net/superdangbo/category_9271194.html

Colonne d'explication détaillée de la connexion :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

Combat réel de Spring Cloud :

Spring Cloud Practical Combat | Décrypter les principes sous-jacents de Feign, y compris le code source pratique

Spring Cloud Practical Combat | Décrypter les principes sous-jacents du ruban d'équilibrage de charge, y compris le code source pratique

Article spécial de la Journée des programmeurs 1024 :

1024 Programmers Carnival Special | L'algorithme de filtrage collaboratif ELK+ crée un moteur de recommandation personnalisé pour prendre en compte intelligemment « des milliers de personnes, des milliers de visages »

Spécial Journée des programmeurs 1024 | Déchiffrer la fusion de Spring Cloud Hystrix pour améliorer la disponibilité du système et la tolérance aux pannes

1024 Programmer's Day Special | ELK+ utilise des portraits d'utilisateurs pour créer un moteur de recommandation personnalisé afin de réaliser intelligemment « des milliers de personnes, des milliers de visages »

1024 Spécial Journée des Programmeurs | OKR VS KPI, qui est le plus approprié ?

Spécial Journée des programmeurs 1024 | Spring Boot, opération pratique de partage MongoDB ou d'ensemble de répliques

Série d'articles pratiques du printemps :

Pratique du printemps | Conseils de base pour l'AOP du printemps - Collection Tournesol

Spring Practice | Le secret que Spring IOC ne peut pas révéler ?

Série d'articles spéciale Fête nationale et Fête de la Mi-Automne :

Spécial fête nationale et fête de la mi-automne (8) Comment utiliser JPA dans les projets Spring Boot

Spécial fête nationale et fête de la mi-automne (7) 20 questions d'entretien de programmation courantes pour les ingénieurs logiciels Java

Spécial fête nationale et festival de la mi-automne (6) 30 questions d'entretien sur la programmation des trésors communs pour les étudiants

Spécial Fête Nationale et Fête de la Mi-Automne (5) Comment régler les performances de MySQL ? Article suivant

Spécial Fête Nationale et Fête de la Mi-Automne (4) Comment régler les performances de MySQL ? Article précédent

Spécial fête nationale et fête de la mi-automne (3) Utilisez le Generative Adversarial Network (GAN) pour générer des peintures avec une atmosphère festive, mises en œuvre par les frameworks d'apprentissage profond TensorFlow et Keras

Spécial fête nationale et fête de la mi-automne (2) Bénédictions romantiques Utiliser des réseaux contradictoires génératifs (GAN) pour générer des peintures avec une atmosphère festive

Spécial fête nationale et fête de la mi-automne (1) Méthode de bénédiction romantique Utilisez un réseau neuronal récurrent (RNN) ou un réseau de mémoire à long terme (LSTM) pour générer des poèmes de bénédiction

1. Bibliothèque de journalisation en Python

La bibliothèque de journalisation de Python (logging) fournit un système de journalisation flexible. Voici un exemple simple d'utilisation de la bibliothèque de journalisation de Python pour la journalisation :

  1. Tout d'abord, importez la bibliothèque de journalisation :
import logging  
  1. Ensuite, configurez les paramètres de base pour la journalisation, tels que le niveau de journalisation, le format du journal et le nom du fichier journal :
logging.basicConfig(level=logging.DEBUG,  
                    format='%(asctime)s - %(levelname)s - %(message)s',  
                    filename='app.log',  
                    filemode='w')  

Ici, nous définissons le niveau de journalisation sur DEBUG, le format du journal sur时间 - 级别 - 消息 et enregistrons les enregistrements de journal dans un fichier nommé app.log.
3. Ensuite, utilisez les différents niveaux et méthodes de la bibliothèque de journalisation pour la journalisation :

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.')  

Ces enregistrements de journal correspondront à différents niveaux de journalisation, de faible à élevé : DEBUG, INFO, AVERTISSEMENT, ERREUR, CRITIQUE.
4. Après avoir exécuté le code ci-dessus, vous verrez un fichier journal nommé app.log dans le répertoire actuel, qui contient le journal que vous venez d'enregistrer. Le contenu du fichier est le suivant :

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.  

L'exemple ci-dessus montre comment utiliser la bibliothèque de journalisation de Python pour la journalisation de base. Vous pouvez ajuster le niveau de journalisation, le format et d'autres paramètres en fonction de vos besoins réels. Si vous souhaitez afficher les journaux sur la console et le fichier en même temps, vous ne pouvez pas définir le paramètre filemode afin que les journaux soient affichés sur la console et le fichier en même temps. . En outre, vous pouvez également utiliser le paramètre handlers pour configurer le processeur de journaux afin de répondre à des exigences de journalisation plus complexes.

2. Utilisez la bibliothèque de journalisation de Python (logging) et la bibliothèque pandas pour analyser les données des journaux

En Python, il existe de nombreuses façons de mettre en œuvre la collecte et l'analyse des journaux. Ici, je vais vous présenter un exemple simple qui utilise la bibliothèque de journalisation de Python (logging) et la bibliothèque pandas pour analyser les données des journaux.
Tout d'abord, assurez-vous que la bibliothèque pandas est installée. Si elle ne l'est pas encore, utilisez la commande suivante pour l'installer :

pip install pandas  

Voici un exemple simple de collecte et d'analyse de journaux Python :

  1. Importez les bibliothèques requises :
import logging  
import pandas as pd  
  1. Définir le format du journal :
logging.basicConfig(level=logging.DEBUG,  
                    format='%(asctime)s - %(levelname)s - %(message)s')  
  1. Données du journal de simulation :
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. Enregistrez les données du journal dans un fichier 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. Utilisez pandas pour lire le fichier CSV et l'analyser :
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)  

Le code ci-dessus enregistre les données du journal simulé dans un fichier CSV et utilise des pandas pour y effectuer des statistiques et des analyses simples. Dans les applications réelles, vous pouvez modifier la logique de collecte et d'analyse des journaux selon vos besoins.

Je suppose que tu aimes

Origine blog.csdn.net/superdangbo/article/details/134279026
conseillé
Classement