Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778// SPDX-License-Identifier: LGPL-2.1+// Copyright (C) 2022, Linaro Ltd - Daniel Lezcano <daniel.lezcano@linaro.org>#include <stdarg.h>#include <stdio.h>#include <string.h>#include <syslog.h>#include "log.h"
static const char *__ident = "unknown";static int __options;
static const char * const loglvl[] = { [LOG_DEBUG] = "DEBUG", [LOG_INFO] = "INFO", [LOG_NOTICE] = "NOTICE", [LOG_WARNING] = "WARN", [LOG_ERR] = "ERROR", [LOG_CRIT] = "CRITICAL", [LOG_ALERT] = "ALERT", [LOG_EMERG] = "EMERG",};
int log_str2level(const char *lvl){ int i;
for (i = 0; i < sizeof(loglvl) / sizeof(loglvl[LOG_DEBUG]); i++) if (!strcmp(lvl, loglvl[i])) return i;
return LOG_DEBUG;}
extern void logit(int level, const char *format, ...){ va_list args;
va_start(args, format);
if (__options & TO_SYSLOG) vsyslog(level, format, args);
if (__options & TO_STDERR) vfprintf(stderr, format, args);
if (__options & TO_STDOUT) vfprintf(stdout, format, args);
va_end(args);}
int log_init(int level, const char *ident, int options){ if (!options) return -1;
if (level > LOG_DEBUG) return -1;
if (!ident) return -1;
__ident = ident; __options = options;
if (options & TO_SYSLOG) { openlog(__ident, options | LOG_NDELAY, LOG_USER); setlogmask(LOG_UPTO(level)); }
return 0;}
void log_exit(void){ closelog();}