Créer Apache Log CSV avec Python

installer apache_log_parser

pip install apache_log_parser

Créez le code ci-dessous

C'est presque ci-dessous, mais quelques corrections de bugs https://github.com/isonet/apache-log-to-csv

alog2csv.py


#!/usr/bin/env python
# coding: utf-8

import csv
import apache_log_parser
import argparse

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'


def main(**kwargs):

    print('Converting, please wait...')

    line_parser = apache_log_parser.make_parser(kwargs['format'])
    header = True

    with open(kwargs['input'], 'rb') as inFile, open(kwargs['output'], 'w') as outFile:

        lines = inFile.readlines()
        writer = csv.writer(outFile, delimiter=',')

        for line in lines:
            try:
                log_line_data = line_parser(line)
            except apache_log_parser.LineDoesntMatchException as ex:
                print(bcolors.FAIL + 'The format specified does not match the log file. Aborting...' + bcolors.ENDC)
                print('Line: ' + ex.log_line + 'RegEx: ' + ex.regex)
                exit()

            if header:
                writer.writerow(list(log_line_data.keys()))
                header = False
            else:
                writer.writerow(list(log_line_data.values()))

    print(bcolors.OKGREEN + 'Conversion finished.' + bcolors.ENDC)


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Convert Apache logs to csv', version='%(prog)s 1.0')
    parser.add_argument('format', type=str, help='Apache log format (see http://httpd.apache.org/docs/2.2/logs.html)')
    parser.add_argument('input', type=str, help='Input log file ex. /var/log/apache/access.log')
    parser.add_argument('output', type=str, help='Output csv file ex. ~/accesslog.csv')
    args = parser.parse_args()
    main(**vars(args))

Exécuter

ʻAlog2csv.py format de sortie source`

python alog2csv.py "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" access_log_20200430 output.csv

Recommended Posts

Créer Apache Log CSV avec Python
Convertir JSON en CSV avec Python de Splunk
Python3 + Django ~ Mac ~ avec Apache
Créez Puyopuyo AI avec Python
Faites une loterie avec Python
Écrire en csv avec Python
Télécharger le fichier csv avec python
Créer un outil de formatage CSV avec Python Pandas Py Installer
Créez un bot LINE avec Python + heroku
[Python] Ecrire dans un fichier csv avec Python
Faisons une interface graphique avec python.
Sortie vers un fichier csv avec Python
Sortie du journal python
Sortie du journal de test unitaire avec python
Créer un système de recommandation avec python
Gérer les fichiers Excel CSV avec Python
Faisons un graphe avec python! !!
Lire et écrire du CSV avec Python
Jusqu'à ce que Python fonctionne sur Apache
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Sortie du journal Python vers la console avec GAE
Fractal pour faire et jouer avec Python
Faisons la voix lentement avec Python
Facilitez la soumission de pypy avec atcoder-cli (python)
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
[Python] Rendons matplotlib compatible avec le japonais
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Créez un framework Web avec Python! (1)
Créez une application de bureau avec Python avec Electron
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
CSV en Python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Comment lire un fichier CSV avec Python 2/3
Sortie CSV de la recherche Google avec [Python]! 【Facile】
Grattage de la nourriture avec python et sortie en CSV
Pyinstaller transforme les scripts Python en .exes qui peuvent être exécutés sous Windows
Créer un bot Twitter Trend avec heroku + Python
Lire les données csv Python avec Pandas ⇒ Graphique avec Matplotlib
Lire JSON avec Python et générer un CSV
Le journal Python n'est pas sorti avec docker-compose up
Je veux faire un jeu avec Python