twinkle_stick/source/log.c

22 lines
598 B
C

#include "log.h"
#include <string.h>
static log_write_fn write_fn = NULL;
static const char level_chars[] = "DIWE";
void log_init(log_write_fn fn) {
write_fn = fn;
}
void log_msg(uint8_t level, const char *cat, const char *msg) {
if (!write_fn) return;
char lc = (level < 4) ? level_chars[level] : '?';
write_fn((const uint8_t *)"[", 1);
write_fn((const uint8_t *)&lc, 1);
write_fn((const uint8_t *)"][", 2);
write_fn((const uint8_t *)cat, strlen(cat));
write_fn((const uint8_t *)"] ", 2);
write_fn((const uint8_t *)msg, strlen(msg));
write_fn((const uint8_t *)"\r\n", 2);
}