diff options
-rw-r--r-- | include/osmocom/core/logging.h | 16 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/vty/logging_vty.c | 8 |
3 files changed, 23 insertions, 3 deletions
diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index 3c5e7b15..4c893ac4 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -95,6 +95,17 @@ struct log_target; typedef int log_filter(const struct log_context *ctx, struct log_target *target); +struct log_info; +struct vty; + +typedef void log_print_filters(struct vty *vty, + const struct log_info *info, + const struct log_target *tgt); + +typedef void log_save_filters(struct vty *vty, + const struct log_info *info, + const struct log_target *tgt); + /*! \brief Logging configuration, passed to \ref log_init */ struct log_info { /* \brief filter callback function */ @@ -106,6 +117,11 @@ struct log_info { unsigned int num_cat; /*! \brief total number of user categories (not library) */ unsigned int num_cat_user; + + /* \brief filter saving function */ + log_save_filters *save_fn; + /* \brief filter saving function */ + log_print_filters *print_fn; }; /*! \brief Type of logging target */ diff --git a/src/Makefile.am b/src/Makefile.am index 841f6725..f2b1b838 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,6 @@ # This is _NOT_ the library release version, it's an API version. # Please read Chapter 6 "Library interface versions" of the libtool documentation before making any modification -LIBVERSION=4:0:0 +LIBVERSION=5:0:0 AM_CFLAGS = -Wall $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 64e49d7e..47877fe9 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -252,7 +252,9 @@ static void vty_print_logtarget(struct vty *vty, const struct log_info *info, tgt->filter_map & LOG_FILTER_ALL ? "Enabled" : "Disabled", VTY_NEWLINE); - /* FIXME: print application specific filters */ + /* print application specific filters */ + if (info->print_fn) + info->print_fn(vty, info, tgt); } #define SHOW_LOG_STR "Show current logging configuration\n" @@ -617,7 +619,9 @@ static int config_write_log_single(struct vty *vty, struct log_target *tgt) vty_out(vty, " logging filter all %u%s", tgt->filter_map & LOG_FILTER_ALL ? 1 : 0, VTY_NEWLINE); - /* FIXME: how to do this for filters outside of libosmocore? */ + /* save filters outside of libosmocore, i.e. in app code */ + if (osmo_log_info->save_fn) + osmo_log_info->save_fn(vty, osmo_log_info, tgt); vty_out(vty, " logging color %u%s", tgt->use_color ? 1 : 0, VTY_NEWLINE); |