ログファイルで大量のログがある場合、毎回検索してある一定のメッセージを抽出するのがめんどくさいので、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)はこちらの記事を参照
dateモジュールの使い方はこちらの記事を参照
以上がログファイルからある一定の文字列を含むメッセージを抽出するプログラムとなります。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す