0
我在一些非常有限的(關於RAM存儲器)微控制器上與一些朋友進行了一個項目。我目前的任務是製作一個記錄器模塊。記錄器必須顯示「x; y; log-message」格式,其中「x」是日誌級別,「y」是類標識符(唯一整數)。到目前爲止,我的設計已經完成了,儘管我仍然遇到了問題,我可以從記錄器模塊獲取唯一的類ID,而不需要任何依賴(以某種方式)。用於記錄的類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;
};
我不喜歡這不得不記錄所有的類都必須從記錄器類繼承。我也從log4cpp中看到了這個想法(Category類的多個實現),但我認爲這對我們的需求和資源來說太複雜和沉重。
我會欣賞任何其他的想法!提前致謝!