diff --git a/src/gprs_ms.c b/src/gprs_ms.c
index 8453f20..d68f8aa 100644
--- a/src/gprs_ms.c
+++ b/src/gprs_ms.c
@@ -942,6 +942,24 @@
 	return NULL;
 }
 
+const char *ms_name(const struct GprsMs *ms)
+{
+	static char _ms_name_buf[128];
+	return ms_name_buf(ms, _ms_name_buf, sizeof(_ms_name_buf));
+}
+
+char *ms_name_buf(const struct GprsMs *ms, char *buf, unsigned int buf_size)
+{
+	snprintf(buf, buf_size - 1,
+		"MS(TLLI=0x%08x, IMSI=%s, TA=%" PRIu8 ", %" PRIu8 "/%" PRIu8 ",%s%s)",
+		ms_tlli(ms), ms_imsi(ms), ms_ta(ms),
+		ms_ms_class(ms), ms_egprs_ms_class(ms),
+		ms_ul_tbf(ms) ? " UL" : "",
+		ms_dl_tbf(ms) ? " DL" : "");
+	buf[buf_size - 1] = '\0';
+	return buf;
+}
+
 int ms_nacc_start(struct GprsMs *ms, Packet_Cell_Change_Notification_t *notif)
 {
 	if (!ms->nacc)
diff --git a/src/gprs_ms.h b/src/gprs_ms.h
index c5ee01c..cc92e2a 100644
--- a/src/gprs_ms.h
+++ b/src/gprs_ms.h
@@ -134,6 +134,8 @@
 static inline struct gprs_rlcmac_ul_tbf *ms_ul_tbf(const struct GprsMs *ms) {return ms->ul_tbf;}
 static inline struct gprs_rlcmac_dl_tbf *ms_dl_tbf(const struct GprsMs *ms) {return ms->dl_tbf;}
 
+const char *ms_name(const struct GprsMs *ms);
+char *ms_name_buf(const struct GprsMs *ms, char *buf, unsigned int buf_size);
 
 void ms_set_callback(struct GprsMs *ms, struct gpr_ms_callback *cb);
 
@@ -237,11 +239,7 @@
 }
 
 #define LOGPMS(ms, category, level, fmt, args...) \
-	LOGP(category, level, "MS(TLLI=0x%08x, IMSI=%s, TA=%" PRIu8 ", %" PRIu8 "/%" PRIu8 ",%s%s) " fmt, \
-	     ms_tlli(ms), ms_imsi(ms), ms_ta(ms), ms_ms_class(ms), ms_egprs_ms_class(ms), \
-	     ms_ul_tbf(ms) ? " UL": "", \
-	     ms_dl_tbf(ms) ? " DL": "", \
-	     ## args)
+	LOGP(category, level, "%s " fmt, ms_name(ms), ## args)
 
 #ifdef __cplusplus
 }
