我和一些朋友在一个非常有限的(关于 RAM 内存)微控制器上进行了一个项目。我目前的任务是制作一个记录器模块。记录器必须显示类似“x;y;log-message”的格式,其中“x”是日志级别,“y”是类标识符(唯一整数)。到目前为止,我的设计已经基本完成,尽管在从 logger 模块获取唯一类 ID 的方式上仍然存在问题,而无需任何依赖(不知何故)。
我的第一个想法是(假设这是伪代码):
class A : public Logger
{
private:
unsigned short GetId () {return CLASS_ID_A;}
};
class Logger
{
public:
enum
{
CLASS_ID_A, CLASS_ID_B
};
void Error (const char *msg, ...)
{
Log(LOG_LEVEL_ERROR, GetId(), msg, ...);
}
protected:
unsigned short GetId () = 0;
};
我不喜欢所有必须记录的类都必须继承自 Logger 类。我也从 log4cpp(Category 类的多个实现)中看到了这个想法,但我认为这对于我们的需求和资源来说太复杂和繁重了。
我将不胜感激任何其他想法!提前致谢!