由于logging库在云端系统的各种问题,需要自己实现一个日志器。通过inspect可以获取到当前函数的调用者所在行号、函数名等信息。也就是程序运行堆栈监视。
建议日志如下:
class
getLogger
(
)
:
def
debug
(
self
,
msg
)
:
if
DEBUG
:
print
(
'%s - DEBUG:%d - %s'
%
(
time
.
strftime
(
'%Y-%m-%d %H:%M:%S'
,
time
.
localtime
(
)
)
,
inspect
.
stack
(
)
[
1
]
[
2
]
,
msg
)
)
def
info
(
self
,
msg
)
:
print
(
'%s - INFO:%d - %s'
%
(
time
.
strftime
(
'%Y-%m-%d %H:%M:%S'
,
time
.
localtime
(
)
)
,
inspect
.
stack
(
)
[
1
]
[
2
]
,
msg
)
)
def
error
(
self
,
msg
)
:
print
(
'%s - ERROR:%d - %s'
%
(
time
.
strftime
(
'%Y-%m-%d %H:%M:%S'
,
time
.
localtime
(
)
)
,
inspect
.
stack
(
)
[
1
]
[
2
]
,
msg
)
)
由于时间关系没有深究,推测
inspect.stack()[1][2]
的两极索引分别对应栈偏移、变量项目。