我想在我正在開發的C++項目中實現記錄器。我想知道在每個類中單獨實現一個記錄器,還是使用log4cxx庫在每個類中實例化一個日誌記錄接口會更好。我想要實現的一些記錄器可以在現有類中記錄事件。接口與個人記錄器
在使用日誌接口,我的意思是:
class Logger
{
private:
log4cxx::LoggerPtr firstLogger(log4cxx::Logger::getLogger("first.log"));
log4cxx::LoggerPtr secondLogger(log4cxx::Logger::getLogger("second.log"));
public:
virtual void writeLogMessage(log4cxx::LoggerPtd logger, std::string msg);
};
就是我通過傳遞LoggerPtr做的正確的方式在做什麼?因爲我需要能夠選擇使用哪個記錄器。另外,如果創建一個日誌接口更好,有人可以提出一個很好的例子,其中可以看到如何使用log4cxx實現這樣一個接口的實質嗎?所以,例如,什麼需要是私人的,什麼需要公開等。
記錄器實際上是隻有*一個*實例的記錄器,並在需要時使用它 –
至於如何「選擇」一個地方的單身模式(https://en.wikipedia.org/wiki/Singleton_pattern)要使用哪個記錄器,可以將其包裝在預處理器宏中,因此只能編寫例如'LOG1(「...」)',那個宏將得到正確的記錄器並用記錄器調用寫入功能。 –