什么设计模式可能适用于日志记录?在这种情况下通常使用什么?有什么好的教程吗?
我正在使用 C89 和 gcc 4.4.4 编写客户端-服务器应用程序。我现在需要实现一些日志记录功能,该功能将在屏幕上显示日志消息并将日志记录到文件中。
但是,我不想显示所有日志消息(警告、错误、严重、不可恢复、调试等)。也许我可以设置它只显示错误而不显示其他内容。例如,用户可能对屏幕输出上的调试消息不感兴趣。
最佳答案
一些提示/概念:
- 使用日志级别参数或函数名称隐含的参数生成日志条目的机制。
- 通常是一个 printf 风格的格式字符串,后跟参数。
- 一种数据结构,用于从生成消息的一个或多个线程收集消息。
- 某种形式的时间戳。
- 处理收集到的消息并生成输出的后端线程。您可以在此处配置显示和/或写入文件的级别。
- vsnprintf() 是一个参数数量可变的函数,常用于后端处理部分。
通常的想法是将字符串处理推迟到后台线程,这样生成日志的实际工作线程就不会在字符串操作上浪费时间。但是,这使得打印变量字符串变得困难,因为它们往往会在后台处理它们时超出范围。所以在这些情况下,数值是首选。如果实时性不是那么重要,您可以通过日志接口(interface)复制字符串,而不是仅仅传递指针和数字参数值。
祝你好运。
关于c - 记录到屏幕和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2935986/