last_update = '2026/7/17'
version = '0.0.1'
author = 'ASH'

import time
import os

from datetime import datetime

now = datetime.now()
formatted = now.strftime("%Y-%m-%d-%H-%M-%S")   
log_file_name = formatted + '.log'
st = time.time()

# defult parameter
defult_log_file_dir = './logs'
log_file_path = defult_log_file_dir + '/' + log_file_name

# create log file
if not os.path.exists(defult_log_file_dir):
    os.makedirs(defult_log_file_dir)
log_file = open(log_file_path,'w',encoding='utf-8')
log_file.close()

def log(event_content,level = 'debug',type = 'event',event_time = None):
    if event_time == None:
        re_t = time.time() - st
        text = f'[{re_t}][{level}][{type}][{event_content}]\n'
        log_file = open(log_file_path,'at',encoding = 'utf-8')
        log_file.write(text)
        log_file.close()
        
    else:
        re_t = event_time - st
        text = f'[{re_t}][{level}][{type}][{event_content}]\n'
        log_file = open(log_file_path,'at',encoding = 'utf-8')
        log_file.write(text)
        log_file.close()

def trans_log(log_list):
    for i in log_list:
        text = []
        f = i[1:-1].split('][')
        log(f[3],level = f[1], type= f[2], event_time = float(f[0]))

def read_log_file(files_path):
    log_file = open(files_path,'r',encoding = 'utf-8')
    log_list = log_file.read().splitlines()
    log_file.close()

    
    result = {
        'file_name':os.path.basename(files_path),
        'file_path':files_path,
        'event_num':{
            'debug':0,
            'info':0,
            'warn':0,
            'error':0,
            'fatal':0,
            'invalid':0
        },
        'normal_exit':True,
        'end_event':None
    }

    for i in log_list:
        f = i[1:-1].split('][')
        if f[1] == 'debug':
            result['event_num']['debug'] += 1;
        elif f[1] == 'info':
            result['event_num']['info'] += 1;
        elif f[1] == 'warn':
            result['event_num']['warn'] += 1;
        elif f[1] == 'error':
            result['event_num']['error'] += 1;
        elif f[1] == 'fatal':
            result['event_num']['fatal'] += 1;
        else:
            result['event_num']['invalid'] += 1;

    if log_list[-1][1:-1].split('][')[2] != 'exit':
        result['normal_exit'] = False
    
    result['end_event'] = log_list[-1][1:-1].split('][')[3]

    return result

if __name__ == '__main__':
    log('This is a test.')
    log('This is a test.',level='info',type='test')
    log('This is a test.',level='warn',type='fate warn',event_time=time.time())