我正在开发一个基于Python的应用程序(HTTP-REST或jsonrpc接口),它将用于生产自动化测试环境.这将连接到运行所有测试脚本的Java客户端.即,不需要人工访问(除了测试应用程序本身).
我们希望在Raspberry Pi上部署它,所以我希望它相对快速且占用空间小.它可能不会得到大量的请求(在最大负载,可能是每秒几个),但它应该能够运行并在很长一段时间内保持稳定.
由于其简单性(一个文件),我已经确定了Bottle作为框架.这是对Flask的折腾.任何认为Flask可能更好的人,让我知道原因.
我对Bottle的内置HTTP服务器的稳定性有点不确定,所以我正在评估这三个选项:
问题:
我有一些我需要添加日志记录的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")
Run Code Online (Sandbox Code Playgroud)
文件: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
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像:
[WARN:my_module - my_module.py:9] I thought it would be 1
[DEBUG:main - main.py:11] Exiting main.py
Run Code Online (Sandbox Code Playgroud)