用c++语言写一个日志类,可以在程序中使用
时间: 2023-02-22 07:17:11 浏览: 61
下面是一个日志类的示例代码:
```
#include <stdio.h>
#include <time.h>
#define LOG_LEVEL_ERROR 0
#define LOG_LEVEL_WARNING 1
#define LOG_LEVEL_INFO 2
#define LOG_LEVEL_DEBUG 3
#define LOG_LEVEL LOG_LEVEL_DEBUG
void log_message(int level, const char *message) {
if (level < LOG_LEVEL) {
return;
}
time_t now = time(NULL);
struct tm *local_time = localtime(&now);
char formatted_time[20];
strftime(formatted_time, 20, "%Y-%m-%d %H:%M:%S", local_time);
switch (level) {
case LOG_LEVEL_ERROR:
printf("[ERROR] %s %s\n", formatted_time, message);
break;
case LOG_LEVEL_WARNING:
printf("[WARNING] %s %s\n", formatted_time, message);
break;
case LOG_LEVEL_INFO:
printf("[INFO] %s %s\n", formatted_time, message);
break;
case LOG_LEVEL_DEBUG:
printf("[DEBUG] %s %s\n", formatted_time, message);
break;
default:
printf("[UNKNOWN] %s %s\n", formatted_time, message);
break;
}
}
```
在程序中使用:
```
int main(int argc, char *argv[]) {
log_message(LOG_LEVEL_ERROR, "This is an error message");
log_message(LOG_LEVEL_WARNING, "This is a warning message");
log_message(LOG_LEVEL_INFO, "This is an info message");
log_message(LOG_LEVEL_DEBUG, "This is a debug message");
return 0;
}
```
这个日志类定义了 4 个日志级别:错误(`LOG_LEVEL_ERROR`)、警告(`LOG_LEVEL_WARNING`)、信息(`LOG_LEVEL_INFO`)和调试(`LOG_LEVEL_DEBUG`)。你可以通过宏定义 `LOG_LEVEL` 来设置当前的日志级别,只有低于当前级别的日志才会被输出。
在程序中,你可以调用 `log_message` 函数来记录日志。它接