しょっちゅう忘れることを書いておく。
![]() |
66 |
163 views
# coding: UTF-8
from datetime import datetime
import os
import glob
class Log(object):
def __init__(self, output_dir="./", log_name="trace.log", log_size=10, lap_num=10, stdout=True):
self.output_dir = output_dir
self.log_name = log_name
self.log_size = log_size * 1024 * 1024
self.lap_num = lap_num
self.stdout = stdout
def output(self, msg, level="success"):
if not os.path.exists(self.output_dir):
os.makedirs(self.output_dir)
log_datetime = datetime.today().strftime("%Y/%m/%d %H:%M:%S")
text = f"{log_datetime} {level} {msg}"
log_file_path = os.path.join(self.output_dir, self.log_name)
if os.path.exists(log_file_path):
# ラップアラウンド
file_size = os.path.getsize(log_file_path)
now = datetime.now()
new = "{0:%Y%m%d%H%M%S}_trace.log".format(now)
if file_size >= self.log_size:
old_path = log_file_path
new_path = os.path.join(os.getcwd(), new)
os.rename(old_path, new_path)
# 一番古いログファイルを削除する
file_list = sorted(glob.glob('*_trace.log'))
backup_file_num = len(file_list)
if backup_file_num >= self.lap_num:
os.remove(file_list[0])
with open(log_file_path, "a", encoding="utf-8") as f:
if self.stdout:
print(text)
f.write(text + "\n")
if __name__ == '__main__':
log = Log()
log.output("こんにちは")
Page 58 of 69.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/