Skip to content

Commit 2afc692

Browse files
committed
ggml-remotingbackend: allow saving the hypervisor logs to a file
1 parent df35b0b commit 2afc692

File tree

1 file changed

+37
-29
lines changed

1 file changed

+37
-29
lines changed

ggml/src/ggml-remotingbackend/backend-utils.h

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,47 +7,55 @@
77
#include <ggml.h>
88

99
#define UNUSED GGML_UNUSED
10+
#define APIR_LLAMA_CPP_LOG_TO_FILE_ENV "APIR_LLAMA_CPP_LOG_TO_FILE"
11+
12+
static FILE *
13+
get_log_dest(void)
14+
{
15+
static FILE *dest = NULL;
16+
if (dest) {
17+
return dest;
18+
}
19+
const char *apir_log_to_file = getenv(APIR_LLAMA_CPP_LOG_TO_FILE_ENV);
20+
if (!apir_log_to_file) {
21+
dest = stderr;
22+
return dest;
23+
}
24+
25+
dest = fopen(apir_log_to_file, "w");
26+
27+
return dest;
28+
}
29+
30+
#define APIR_VA_PRINT(prefix, format) \
31+
do { \
32+
FILE *dest = get_log_dest(); \
33+
fprintf(dest, prefix); \
34+
va_list argptr; \
35+
va_start(argptr, format); \
36+
vfprintf(dest, format, argptr); \
37+
fprintf(dest, "\n"); \
38+
va_end(argptr); \
39+
fflush(dest); \
40+
} while (0)
1041

1142
inline void
1243
INFO(const char *format, ...) {
13-
va_list argptr;
14-
va_start(argptr, format);
15-
vfprintf(stderr, format, argptr);
16-
fprintf(stderr, "\n");
17-
va_end(argptr);
44+
APIR_VA_PRINT("INFO: ", format);
1845
}
1946

2047
inline void
2148
WARNING(const char *format, ...) {
22-
fprintf(stderr, "WARNING: ");
23-
24-
va_list argptr;
25-
va_start(argptr, format);
26-
vfprintf(stderr, format, argptr);
27-
fprintf(stderr, "\n");
28-
va_end(argptr);
49+
APIR_VA_PRINT("WARNING: ", format);
2950
}
3051

3152
inline void
3253
ERROR(const char *format, ...) {
33-
fprintf(stderr, "ERROR: ");
34-
35-
va_list argptr;
36-
va_start(argptr, format);
37-
vfprintf(stderr, format, argptr);
38-
fprintf(stderr, "\n");
39-
va_end(argptr);
54+
APIR_VA_PRINT("ERROR: ", format);
4055
}
4156

42-
inline void
57+
[[noreturn]] inline void
4358
FATAL(const char *format, ...) {
44-
fprintf(stderr, "FATAL: ");
45-
46-
va_list argptr;
47-
va_start(argptr, format);
48-
vfprintf(stderr, format, argptr);
49-
fprintf(stderr, "\n");
50-
va_end(argptr);
51-
if (format)
52-
assert(false);
59+
APIR_VA_PRINT("FORMAT: ", format);
60+
abort();
5361
}

0 commit comments

Comments
 (0)