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 :
Article spécial de la Journée des programmeurs 1024 :
1024 Spécial Journée des Programmeurs | OKR VS KPI, qui est le plus approprié ?
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 :
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 :
- Tout d'abord, importez la bibliothèque de journalisation :
import logging
- 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 :
- Importez les bibliothèques requises :
import logging
import pandas as pd
- Définir le format du journal :
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s')
- 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.'},
]
- 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)
- 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.