我想在我正在开发的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(“...”)',那个宏将得到正确的记录器并用记录器调用写入功能。 –