diff --git a/src/plugins/dev_iavf/format.c b/src/plugins/dev_iavf/format.c
index bc84cc3..9a3dde4 100644
--- a/src/plugins/dev_iavf/format.c
+++ b/src/plugins/dev_iavf/format.c
@@ -110,24 +110,3 @@
     s = format (s, "disabled");
   return s;
 }
-
-u8 *
-format_iavf_log (u8 *s, va_list *args)
-{
-  vnet_dev_t *dev = va_arg (*args, vnet_dev_t *);
-  char *func = va_arg (*args, char *);
-
-  if (dev)
-    s = format (s, "%U", format_vnet_dev_addr, dev);
-  if (dev && func)
-    vec_add1 (s, ' ');
-  if (func)
-    {
-      if (strncmp (func, "iavf_", 5) == 0)
-	func += 5;
-      s = format (s, "%s", func);
-    }
-  vec_add1 (s, ':');
-  vec_add1 (s, ' ');
-  return s;
-}
diff --git a/src/plugins/dev_iavf/iavf.h b/src/plugins/dev_iavf/iavf.h
index 7576fa9..958a8dc 100644
--- a/src/plugins/dev_iavf/iavf.h
+++ b/src/plugins/dev_iavf/iavf.h
@@ -105,7 +105,6 @@
 format_function_t format_iavf_vf_cap_flags;
 format_function_t format_iavf_rx_trace;
 format_function_t format_iavf_port_status;
-format_function_t format_iavf_log;
 
 /* port.c */
 vnet_dev_rv_t iavf_port_init (vlib_main_t *, vnet_dev_port_t *);
@@ -157,8 +156,9 @@
 }
 
 #define log_debug(dev, f, ...)                                                \
-  vlib_log (VLIB_LOG_LEVEL_DEBUG, iavf_log.class, "%U" f, format_iavf_log,    \
-	    (dev), __func__, ##__VA_ARGS__)
+  vlib_log (VLIB_LOG_LEVEL_DEBUG, iavf_log.class, "%U" f,                     \
+	    format_vnet_dev_log, (dev),                                       \
+	    clib_string_skip_prefix (__func__, "iavf_"), ##__VA_ARGS__)
 #define log_info(dev, f, ...)                                                 \
   vlib_log (VLIB_LOG_LEVEL_INFO, iavf_log.class, "%U: " f,                    \
 	    format_vnet_dev_addr, (dev), ##__VA_ARGS__)
diff --git a/src/vnet/dev/dev.h b/src/vnet/dev/dev.h
index 5c80b98..9b54e73 100644
--- a/src/vnet/dev/dev.h
+++ b/src/vnet/dev/dev.h
@@ -613,6 +613,7 @@
 format_function_t format_vnet_dev_tx_queue_info;
 format_function_t format_vnet_dev_flags;
 format_function_t format_vnet_dev_port_flags;
+format_function_t format_vnet_dev_log;
 unformat_function_t unformat_vnet_dev_flags;
 unformat_function_t unformat_vnet_dev_port_flags;
 
diff --git a/src/vnet/dev/format.c b/src/vnet/dev/format.c
index 4e1ece6..b8b7dbd 100644
--- a/src/vnet/dev/format.c
+++ b/src/vnet/dev/format.c
@@ -394,11 +394,7 @@
   if (dev && func)
     vec_add1 (s, ' ');
   if (func)
-    {
-      if (strncmp (func, "vnet_dev_", 9) == 0)
-	func += 9;
-      s = format (s, "%s", func);
-    }
+    s = format (s, "%s", func);
   vec_add1 (s, ':');
   vec_add1 (s, ' ');
   return s;
diff --git a/src/vnet/dev/log.h b/src/vnet/dev/log.h
index 432e7b8..5ca7b66 100644
--- a/src/vnet/dev/log.h
+++ b/src/vnet/dev/log.h
@@ -5,11 +5,10 @@
 #ifndef _VNET_DEV_LOG_H_
 #define _VNET_DEV_LOG_H_
 
-format_function_t format_vnet_dev_log;
-
 #define log_debug(dev, f, ...)                                                \
   vlib_log (VLIB_LOG_LEVEL_DEBUG, dev_log.class, "%U" f, format_vnet_dev_log, \
-	    dev, __func__, ##__VA_ARGS__)
+	    dev, clib_string_skip_prefix (__func__, "vnet_dev_"),             \
+	    ##__VA_ARGS__)
 #define log_notice(dev, f, ...)                                               \
   vlib_log (VLIB_LOG_LEVEL_NOTICE, dev_log.class, "%U" f,                     \
 	    format_vnet_dev_log, dev, 0, ##__VA_ARGS__)
diff --git a/src/vppinfra/string.h b/src/vppinfra/string.h
index 38d3bab..b1ef0e4 100644
--- a/src/vppinfra/string.h
+++ b/src/vppinfra/string.h
@@ -1161,6 +1161,13 @@
   return EOK;
 }
 
+static_always_inline const char *
+clib_string_skip_prefix (const char *s, const char *prefix)
+{
+  uword len = __builtin_strlen (prefix);
+  return s + (__builtin_strncmp (s, prefix, len) ? 0 : len);
+}
+
 #endif /* included_clib_string_h */
 
 /*
