forked from testerSunshine/12306
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.py
executable file
·61 lines (47 loc) · 1.19 KB
/
logger.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
#coding: utf-8
import os
import time
import logging
from config import configCommon
logger = None
loggerHandler = None
dateStr = '' #默认拥有日期后缀
suffix = '' #除了日期外的后缀
def setSuffix(s):
global suffix
suffix = s
def getTodayDateStr():
return time.strftime("%Y-%m-%d", time.localtime(configCommon.getNowTimestamp()))
def setDateStr(s):
global dateStr
dateStr = s
def isAnotherDay(s):
global dateStr
return dateStr != s
def getLogFile():
global dateStr, suffix
rtn = os.path.join(configCommon.getLogDir(), dateStr)
if suffix:
rtn += "_" + suffix
return rtn + ".log"
def log(msg, func = "info"):
global logger
if not logger:
logger = logging.getLogger()
logger.setLevel(logging.INFO)
todayStr = getTodayDateStr()
if isAnotherDay(todayStr):
setDateStr(todayStr)
logger.removeHandler(loggerHandler)
fh = logging.FileHandler(getLogFile())
fm = logging.Formatter(u'[%(asctime)s][%(levelname)8s] --- %(message)s (%(filename)s:%(lineno)s)')
fh.setFormatter(fm)
logger.addHandler(fh)
levels = {
"debug": logger.debug,
"info": logger.info,
"warning": logger.warning,
"error": logger.error,
"critical": logger.critical
}
levels[func](msg)