summaryrefslogtreecommitdiffstats
path: root/src/logging.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/logging.c')
-rw-r--r--src/logging.c14
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);