diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/logging.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/logging.c b/src/logging.c index 8cb34071..66074ea0 100644 --- a/src/logging.c +++ b/src/logging.c @@ -323,6 +323,14 @@ const char* log_category_name(int subsys) return NULL; } +static const char *const_basename(const char *path) +{ + const char *bn = strrchr(path, '/'); + if (!bn || !bn[1]) + return path; + return bn + 1; +} + static void _output(struct log_target *target, unsigned int subsys, unsigned int level, const char *file, int line, int cont, const char *format, va_list ap) @@ -400,6 +408,12 @@ static void _output(struct log_target *target, unsigned int subsys, goto err; OSMO_SNPRINTF_RET(ret, rem, offset, len); break; + case LOG_FILENAME_BASENAME: + ret = snprintf(buf + offset, rem, "%s:%d ", const_basename(file), line); + if (ret < 0) + goto err; + OSMO_SNPRINTF_RET(ret, rem, offset, len); + break; } } ret = vsnprintf(buf + offset, rem, format, ap); |