接口与个人记录器
Interface vs. Individual Loggers
我想在我正在做的一个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
类到日志记录器。我一直在努力记住这个模式被称为什么(如果它甚至是一个模式),这里是它在另一种语言中的一个例子
相关文章:
- 创建 Spdlog 异步文件记录器时遇到困难
- 如何将自定义记录器与websocketpp一起使用?
- 在C++中隐藏键盘记录器的控制台窗口
- 为什么Qt Creator的应用程序输出不能从spdlog记录器打印
- 麻烦得到提升::记录器编译
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 多态记录器(虚拟模板化函数?
- 设置提升记录器的线程名称
- Boost Log的琐碎记录器"lazy evaluation"是如何工作的?
- boost::log 设置"Channel"通道记录器中的属性
- 区分键盘记录器中的密码和其他类型的键盘输入
- 记录器的流界面,C
- 如何监控Android和iOS上的所有击键操作,如Windows键盘记录器
- 如何声明和定义 Poco 记录器
- 记录器何时应刷新
- 带有 gtest 框架的 spdlog 记录器不起作用
- 使用常量字符*时如何使用带有模板的记录器
- 如何防止升压记录器在每条记录后添加?
- 异步记录器线程安全
- 接口与个人记录器