fprintf
是一個 C 語言庫函數,用于將格式化的輸出寫入文件流
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include <time.h>
log_message
,它接受一個文件名、一個消息和一個表示消息類型的整數(例如,0 表示信息,1 表示警告,2 表示錯誤):void log_message(const char *filename, const char *message, int message_type) {
// ...
}
log_message
函數中,打開指定的日志文件以追加模式:FILE *log_file = fopen(filename, "a");
if (log_file == NULL) {
printf("Error opening log file: %s\n", filename);
return;
}
time_t current_time = time(NULL);
struct tm *local_time = localtime(¤t_time);
char timestamp[20];
strftime(timestamp, sizeof(timestamp), "%Y-%m-%d %H:%M:%S", local_time);
const char *prefix;
switch (message_type) {
case 0:
prefix = "INFO";
break;
case 1:
prefix = "WARNING";
break;
case 2:
prefix = "ERROR";
break;
default:
prefix = "UNKNOWN";
}
fprintf
將格式化的日志消息寫入文件:fprintf(log_file, "[%s] [%s] %s\n", timestamp, prefix, message);
fclose(log_file);
現在,你可以在程序中調用 log_message
函數來記錄日志。例如:
int main() {
log_message("example.log", "This is an info message.", 0);
log_message("example.log", "This is a warning message.", 1);
log_message("example.log", "This is an error message.", 2);
return 0;
}
這將在 example.log
文件中創建以下日志條目:
[2022-01-01 12:34:56] [INFO] This is an info message.
[2022-01-01 12:34:56] [WARNING] This is a warning message.
[2022-01-01 12:34:56] [ERROR] This is an error message.
這只是一個簡單的示例,實際應用中可能需要更復雜的日志記錄功能。但是,fprintf
是實現這些功能的基本工具。