我正在为数据库引擎开发基于磁盘的树,并且我喜欢为我的程序维护一个日志文件。我基本上需要日志程序的两种功能。它必须允许我将消息记录到日志文件中,并且还必须写入任何将它作为参数传递到日志文件的变量。我只需要这两个功能。第一个实现相当简单,但我很难实现第二个。我想将任何类型的任意数量的参数传递给日志程序,将它写入日志文件。我尝试使用变量参数函数来实现第二个函数,但问题是我们必须知道正在传递的变量的类型。我相信肯定有办法做到这一点。任何人都可以启发我吗?在C++中实现最小化日志记录程序
0
A
回答
1
log4C++提供您正在查找的功能。
如果这对你来说太重了,你可以使用模板做类似的事情。喜欢的东西:
class log
{
private:
std::ostream& stream;
public:
log(std::ostream& src) : stream(src) {}
...
std::ostream& getStream() { return stream; }
}
template <typename T> log& operator<<(log&, const T& val)
{
log.getStream() << val;
return log;
}
这里log::stream
是您为输出定义为一个文件,到控制台或任何部分std::ostream
实例。您可以通过区分不同类型的日志记录事件来让它更有趣。
0
看一看这个简单的日志系统从DOBS博士的文章的实现:http://drdobbs.com/cpp/201804215
它是基于模板的,有日志记录级别(不运行时发生的任何开销,如果不需要的话)和是小
相关问题
- 1. 如何实现Node.js应用程序日志记录到CloudWatch
- 2. 如何最小化监控请求的日志记录?
- 3. 程式化控制台日志记录
- 4. 数据库日志记录在日志记录过程
- 5. 线程实时日志记录
- 6. 实时日志记录
- 7. 用parse.com上的Twitter c#实现日志记录
- 8. 如何实现log4j日志记录到现有的J2EE Struts Web应用程序?
- 9. 多线程的小应用程序和日志记录
- 10. 将日志记录添加到实用程序包中
- 11. 如何在log4cplus中实现异步日志记录
- 12. 如何在枚举单例中实现日志记录?
- 13. 在T-SQL事务中实现日志记录的最佳方式是什么?
- 14. 如何打开C#中的程序集绑定日志记录?
- 15. 日志记录应用程序块
- 16. Java应用程序+日志记录
- 17. web2py应用程序日志记录
- 18. 。应用程序日志记录
- 19. SolrJetty日志记录 - 如何让自定义日志格式化程序工作?
- 20. netbeans日志记录教程
- 21. 有关为小型实用程序启用基本日志记录的建议
- 22. Java日志记录全局日志程序
- 23. Windows Azure日志记录:WADLogsTable作为应用程序日志?
- 24. Python日志记录模块格式化程序
- 25. GCP日志记录驱动程序:未能初始化
- 26. 如何在SQL存储过程中实现日志记录和错误报告?
- 27. 在Python中实现多线程的自定义输出日志记录
- 28. 多个Web应用程序的日志记录实践
- 29. 多个应用程序实例日志记录
- 30. 从堆中最小的日志记录中创建排序阵列
你是否也想过为每个传递的变量传递第二个参数,该变量包含变量的类型? –
你如何计划记录一个任意类型的变量?这组可能的类型是否有任何限制?例如,他们是否必须有'ostream&operator <<(ostream&,T)'超载? – Useless