Próbuję zaimplementować metodę C#, która może rejestrować komunikat za pomocą ciągu formatu i zmiennej liczby argumentów stylu printf. Idealnie działałoby to identycznie jak funkcja C, którą wkleiłem poniżej, chociaż oczywiście idiomatyczne do C#.Logować komunikat ze zmienną liczbą argumentów w stylu printf
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);
}
}
Funkcja ta jest wygodna dla mnie, ponieważ pozwala mi dokonać następujących połączeń:
LogMessage("Testing");
LogMessage("Testing %s", "1 2 3");
LogMessage("Testing %d %d %d", 1, 2, 3);
Dzięki, właśnie tego rodzaju rzeczy szukałem. Miałem kilka właściwych elementów, ale po prostu nie mogłem uzyskać ich we właściwym "porządku"! –