#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void log_to_tempfile(void* context,
const char location[],
const char message[]) {
FILE* tempfile = (FILE*)context;
int result = fprintf(tempfile,
"%s from %s: %s\n",
if (result < 0) {
perror("Failed to write log to tempfile");
exit(EXIT_FAILURE);
}
}
int main() {
char tempname[] = "/tmp/udipe-log_to_tempfile.XXXXXX";
int tempfd = mkstemp(tempname);
if (tempfd < 0) {
perror("Failed to create temporary file");
exit(EXIT_FAILURE);
}
fprintf(stderr, "Logs will be written to %s", tempname);
FILE* tempfile = fdopen(tempfd, "w+");
if (!tempfile) {
perror("Failed to open temporary file");
exit(EXIT_FAILURE);
}
.callback = log_to_tempfile,
.context = (void*)tempfile
};
assert(context);
if(fclose(tempfile) < 0) {
perror("Failed to close temporary file");
exit(EXIT_FAILURE);
}
return 0;
}
struct udipe_context_s udipe_context_t
Definition context.h:65
UDIPE_PUBLIC UDIPE_NON_NULL_ARGS void udipe_finalize(udipe_context_t *context)
UDIPE_NODISCARD UDIPE_NON_NULL_RESULT UDIPE_PUBLIC udipe_context_t * udipe_initialize(udipe_config_t config)
enum udipe_log_level_e udipe_log_level_t
@ UDIPE_TRACE
Definition log.h:45
UDIPE_NODISCARD UDIPE_NON_NULL_RESULT UDIPE_PUBLIC const char * udipe_log_level_name(udipe_log_level_t level)
struct udipe_log_config_s udipe_log_config_t
udipe_log_config_t log
Definition context.h:42
udipe_log_level_t min_level
Definition log.h:184