Commit da41308f by user

Initial commit

parents
/.idea
\ No newline at end of file
from time import sleep
from my_logger import log
import io
import os
import sys
import traceback
def get_line():
frame = traceback.extract_tb(sys.exc_info()[2])
return str(frame[0]).split()[4]
A = [i for i in range(5)]
log.info("start program")
try:
for i in range(6):
log.warn(A[i] ** 2)
log.info("program calculate square " + str(A[i]))
except:
## вызываем функцию записи ошибки и передаем в нее номер строки с ошибкой
log.error(get_line())
log.info("end program")
try:
while True:
log.info("Hello World ")
sleep(3)
except KeyboardInterrupt as e:
log.info("Stopping...")
import logging
import traceback
import time
import os
class Log:
def __init__(self):
self.start_log_time = time.localtime(time.time())
self.logfile = "{}/{}_{}_{}_main.log".format( os.getcwd(), self.start_log_time.tm_mday, self.start_log_time.tm_mon,
self.start_log_time.tm_year)
self.log = logging.getLogger("my_log")
self.log.setLevel(logging.INFO)
self.FH = logging.FileHandler(self.logfile, encoding='utf-8')
## задаем базовый формат сообщения в логе
self.basic_formater = logging.Formatter('%(asctime)s : [%(levelname)s] : %(message)s')
self.FH.setFormatter(self.basic_formater)
self.log.addHandler(self.FH)
## функция для записи в лог сообщений об ошибке
def error(self, line_no):
## задаем формат ошибочных сообщений, добавляем номер строки
err_formater = logging.Formatter('%(asctime)s : [%(levelname)s][LINE ' + line_no + '] : %(message)s')
## устанавливаем формат ошибок в логгер
self.FH.setFormatter(err_formater)
self.log.addHandler(self.FH)
## пишем сообщение error
self.log.error(traceback.format_exc())
## возвращаем базовый формат сообщений
self.FH.setFormatter(self.basic_formater)
self.log.addHandler(self.FH)
print("{} : [ERROR] : {}".format(self.get_current_time(), traceback.format_exc()))
def get_current_time(self):
t = time.localtime(time.time())
return "{}.{}.{} {}:{}:{}".format(t.tm_mday, t.tm_mon, t.tm_year, t.tm_hour, t.tm_min, t.tm_sec)
def info(self, msg, *args, **kwargs):
print("{} : [INFO] : {}".format(self.get_current_time(), msg))
return self.log.info(msg, *args, **kwargs)
def warn(self, msg, *args, **kwargs):
print("{} : [WARN] : {}".format(self.get_current_time(), msg))
return self.log.warning(msg, *args, **kwargs)
def get_logger(self):
return self.log
log = Log()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment