我想在我正在做的一个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实现这样一个接口的本质?例如,哪些需要私有哪些需要公有等等
是的,你不应该在你的类中重新实现日志。这是在重复你自己,混淆每个班级的职责。决定使用哪个log4cxx::LoggerPtr
听起来像是调用类不应该关心的事情,听起来像是应该在Logger类内部做出决定的决定
log4cxx::LoggerPtr
问题?我实际上会争辩选择如何将发生的事情格式化为可读的std::string msg
是日志记录器的工作,而不是类。我将发送一些抽象的Event
类到日志记录器。我一直在努力记住这个模式被称为什么(如果它甚至是一个模式),这里是它在另一种语言中的一个例子