-
Notifications
You must be signed in to change notification settings - Fork 1
/
log.py
90 lines (73 loc) · 2.25 KB
/
log.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# coding=utf-8
# author: Lan_zhijiang
# desciption: Log class
# date: 2020/10/2
import time
import datetime
import os
import sys
class Log():
def __init__(self):
self.logLevelList = [
"DEBUG", "INFO", "WARNING", "ERROR", "FATAL"
]
self.log_setting = {
"displayLevel": 0,
"logPath": "./data/logs/"
}
def get_log_file_path(self):
"""
获取log文件路径
:return:
"""
basic_path = self.log_setting["logPath"]
log_file_name = self.get_date() + ".log"
if os.path.exists(basic_path + log_file_name) is False:
create_log_file = open(basic_path + log_file_name, "w")
create_log_file.close()
else:
pass
return basic_path + log_file_name
def get_time_stamp(self):
"""
获取当前时间戳,整数化字符化
:return:
"""
return str(int(time.time()))
def get_date(self):
"""
获取当前日期
:return:
"""
return str(datetime.date.today())
def get_formatted_time(self):
"""
获取格式化的时间
:return:
"""
return time.strftime("%H:%M:%S")
def add_log(self, content, level, is_print=True, is_period=True):
"""
添加log
:param level: log级别 0: DEBUG 1: INFO 2: WARNING 3: ERROR(当前任务可能停止) 4: FATAL: 主线程退出
:param content: log内容
:param is_print: 是否打印
:param is_period: 是否添加句号
:return:
"""
log = "[" + self.logLevelList[level] + "] " + self.get_formatted_time() + " " + content
if is_period:
log = log + " ."
if is_print:
if level >= self.log_setting["displayLevel"]:
print(log)
try:
log_file = open(self.get_log_file_path(), "a")
log_file.write(log + '\r\n')
log_file.close()
except IOError:
print("[WARNING] %s Can't write into the log file, please check the permission or is the path correct!" % self.get_formatted_time())
else:
if level > 3:
sys.exit()
return 0