ログファイルで大量のログがある場合、毎回検索してある一定のメッセージを抽出するのがめんどくさいので、Pythonで取得したログファイルからある一定の文字列を抽出し、別のファイルに書き込むプログラムを作成しました。
目次
「Python」ログファイルから特定の文字列を抽出するプログラム
今回は以下「test.log」から「エラー 」という文字列を抽出するプログラムとなります。
プログラムの流れは以下のようになります。
- 「test.log」から「エラー 」という文字列のメッセージ行を抽出
- 抽出したメッセージをCSVファイルに書き込む。書き込んだCSVファイル名に日時を追加
- 抽出元の「test.log」は「log_old」フォルダ配下に移動し、ファイル名に日時を追加
プログラムコード
find.py
import shutil from datetime import datetime now = datetime.now() # test.logログから「エラー 」という文字列を抽出 with open('test.log', 'r', newline='') as f, \ open('test_find_' + now.strftime('%Y%m%d_%H%M%S') + '.csv', 'w') as o: lines = f.readlines() for line in lines: if line.find('エラー ') >= 0: print(line[:-1], file=o) print('「test_find.csv」への書き込み完了') shutil.move('./test.log', './log_old/test_' + now.strftime('%Y%m%d_%H%M%S') + '.log') print('「test.log」を移動')
実行結果
> python find.py
上記プログラムを実行後以下のファイルが作成されます。
- test_find_20200713_200632.csv
- test_20200713_200632.log ※「log_old」フォルダ配下
ファイルの移動と、ファイルに日付を付けるモジュールについての詳細は以下を参照ください。
ファイルの移動(move)はこちらの記事を参照
あわせて読みたい


【Python】ファイルやフォルダの移動をする「shutil.move関数」
Pythonでファイル・フォルダの移動は、shutil.move()関数を利用します。 以下では、「shutil.move関数」の使い方をまとめました。 「Python」ファイルやフォルダの移動...
dateモジュールの使い方はこちらの記事を参照
あわせて読みたい


【Python】日時を扱う「datetime」モジュールの機能
Pythonの標準ライブラリの「datetime」モジュールでは、日付を扱うプログラムを作成できます。 このモジュールを使用することにより、日付や時刻などのデータ型を利用す...
以上がログファイルからある一定の文字列を含むメッセージを抽出するプログラムとなります。
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメント