最近、Pythonでのデスクトップツール(PC上で動作させるもの)を開発する機会が増えてきました。これまでEXCEL VBAを利用する事が多かったのですが、Pythonで便利機能を実現する方向に向かっています(私自身)
今回は、簡単なLogを管理するクラスを作成したので紹介します。
#############################################
# ログ管理クラス
#
#############################################
import datetime
import json
from pathlib import Path
exe_path =str(Path('.').resolve()).replace('\\','/')
log_file = exe_path + '/LOG/log_file.json'
err_file = exe_path + '/LOG/err_file.json'
class LocalLog(object):
def __init__(self,kinds_name):
print("LOG開始")
self.local_log = []
self.error_log = []
self.kinds_name = kinds_name
def __del__(self):
print("LOG終了")
def set_log(self,status,message,info = ""):
if info == None:
info = ""
dt = datetime.datetime.now() # 現在日時取得
self.local_log.append({
"log_type":"OK",
"kinds": self.kinds_name,
"status": status,
"datetime": dt.strftime('%Y/%m/%d %H:%M:%S'),
"message": message,
"info": info
})
def set_error(self,status,message,info = ""):
dt = datetime.datetime.now() # 現在日時取得
print(message,info)
self.error_log.append({
"log_type":"ERROR",
"kinds": self.kinds_name,
"status": status,
"datetime": dt.strftime('%Y/%m/%d %H:%M:%S'),
"message": message,
"info": info
})
def print(self,sdata):
print(sdata)
def print_log(self):
print(self.local_log)
print(self.error_log)
def log_output(self):
print("OUTPUT LOG")
self.print_log()
with open(log_file,'w',encoding="utf-8") as file1:
json.dump(self.local_log,file1,indent=4,ensure_ascii=False)
with open(err_file,'w',encoding="utf-8") as file1:
json.dump(self.error_log,file1,indent=4,ensure_ascii=False)
log_obj = LocalLog(__name__)
(記事のお問合せ・無料相談 → こちら)