我正在尝试实现一个 C# 方法,该方法可以使用格式字符串和可变数量的 printf 样式参数记录消息。理想情况下,它的工作方式与我在下面粘贴的 C 函数相同,当然对于 C# 来说是惯用的。
static
void
LogMessage(const char * iFormat, ...)
{
va_list argp;
FILE * fp;
fp = fopen("log.txt", "a");
if (fp != NULL) {
va_start(argp, iFormat);
vfprintf(fp, iFormat, argp);
va_end(argp);
fprintf(fp, "\n");
fclose(fp);
}
}
这个函数对我来说很方便,因为它允许我进行以下调用:
LogMessage("Testing");
LogMessage("Testing %s", "1 2 3");
LogMessage("Testing %d %d %d", 1, 2, 3);