是否有可能在Python中实现以下(伪)代码的等价物?Python中可以使用C++风格的日志记录宏吗?
#define DEBUG(topic, msg) LOG_IMPL(Logger.DEBUG, topic, msg)
#define INFO(topic, msg) LOG_IMPL(Logger.INFO, topic, msg)
#define LOG_IMPL(level, topic, msg) if(Logger.level() <= level) { Logger.log(level, topic, msg); }
DEBUG("MyComponent", "What you logging at?")
这里的好处是您不必评估字符串日志消息,例如,将字符串连接,调用.format()等)
UPDATE:
Lazy logger message string evaluation - 这个回答我的问题,所以我会投来关闭这个职位。
哇,这是令人厌恶的C++宏,没有任何目的。 – Puppy
你到底在问什么?这些定义可以很容易地以任何语言作为功能来实现。 –
@Graeme:据我所知,你不仅要求一个很好的日志记录模块(而且内置的python很棒),而且对于不评估日志消息的系统(如果构建日志消息的计算量很大)if日志记录被禁用。我错了吗? –