我有一些 Python 代码需要添加日志记录。
我一直更喜欢漂亮的大 C 宏外观语句,如“DEBUG()”、“ERROR()”等来进行日志记录。我觉得当跟踪点与实际代码在视觉上可以区分时,它使代码更易于阅读(没有对象)。
我还希望能够在每个模块级别设置日志记录级别。
我如何制作一个能够做到这一点的名为“log”的模块(同时使用 Python 标准库日志记录模块)?
例如:
文件:main.py
# This imports LOG_MODULE_NAME, DEBUG, WARN, etc
from log import *
import my_module
LOG_MODULE_NAME("main")
log.set_level("main", log.LVL_DEBUG)
log.set_level("my_module", log.LVL_WARN)
if __name__ == "__main__":
foo = my_module.myFunc(2)
DEBUG("Exiting main.py")
文件:my_module.py
from log import *
LOG_MODULE_NAME("my_module")
def myFunc(x):
DEBUG("Entering function")
if x != 1:
WARN("I thought it would be 1")
DEBUG("Exiting function")
return x+1
我希望输出看起来像:
[WARN:my_module - my_module.py:9] I thought it would be 1
[DEBUG:main - main.py:11] Exiting main.py