我见过很多具有不同日志级别的应用程序,您可以使用您指定的级别号启用/禁用它们。
例如,日志级别 1 具有最多的详细信息并输出大量详细信息。级别 2 的细节更少,级别 3 的细节更少,级别 4 是完全禁用日志记录。
您能否建议如何在 C 应用程序中实现它?
这一切基本上都归结为日志记录功能。它会是这样的:
#define LOG_ALL 0
#define LOG_DEBUG 1
#define LOG_INFO 2
#define LOG_WARN 3
#define LOG_ERROR 4
#define LOG_FATAL 5
#define LOG_NEXTFREE 6
static unsigned int threshold = LOG_WARN;
void logIt (unsigned int level, char *message) {
if (level >= threshold)
puts (message);
}
换句话说,只有当消息的级别足以通过日志记录阈值时,日志函数才会输出消息。你用这样的东西来称呼它:
logIt (LOG_INFO, "process starting");
logIt (LOG_FATAL, "cannot read boot sector");
在默认阈值(警告)下,您将看到后者,但看不到前者。
您需要添加的只是一种动态修改阈值的方法,您可以影响记录的内容。
void getAndChangeLevel (unsigned int newLevel) {
if (newLevel < LOG_NEXTFREE)
threshold = newLevel;
}
当然,还有各种其他可能需要的功能,我试图使代码保持简单以说明您询问的特定概念。