From a9e47c8ccb2eefbc707ee5b13dffef29cf8bdb5d Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Fri, 2 Aug 2019 09:54:34 +0100 Subject: nslog: Add nslog_short_level_name() for use in renderers Signed-off-by: Daniel Silverstone --- include/nslog/nslog.h | 11 +++++++++++ src/core.c | 22 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/include/nslog/nslog.h b/include/nslog/nslog.h index 9113527..d63ed48 100644 --- a/include/nslog/nslog.h +++ b/include/nslog/nslog.h @@ -48,6 +48,17 @@ typedef enum { */ const char *nslog_level_name(nslog_level level); +/** + * Convert a logging level to a short string. + * + * The returned string is owned by the nslog library (static) and should + * not be freed. It will be exactly four characters wide and suitable for + * logging to a file neatly. + * + * \param level The level for which you want the 'short' name. + */ +const char *nslog_short_level_name(nslog_level level); + #define NSLOG_LEVEL_DD NSLOG_LEVEL_DEEPDEBUG #define NSLOG_LEVEL_DBG NSLOG_LEVEL_DEBUG #define NSLOG_LEVEL_CHAT NSLOG_LEVEL_VERBOSE diff --git a/src/core.c b/src/core.c index 132e1e6..921cb06 100644 --- a/src/core.c +++ b/src/core.c @@ -49,6 +49,28 @@ const char *nslog_level_name(nslog_level level) return "**UNKNOWN**"; } +const char *nslog_short_level_name(nslog_level level) +{ + switch (level) { + case NSLOG_LEVEL_DEEPDEBUG: + return "DDBG"; + case NSLOG_LEVEL_DEBUG: + return "DBG "; + case NSLOG_LEVEL_VERBOSE: + return "VERB"; + case NSLOG_LEVEL_INFO: + return "INFO"; + case NSLOG_LEVEL_WARNING: + return "WARN"; + case NSLOG_LEVEL_ERROR: + return "ERR "; + case NSLOG_LEVEL_CRITICAL: + return "CRIT"; + }; + + return "?UNK"; +} + static void nslog__normalise_category(nslog_category_t *cat) { -- cgit v1.2.3