mirror of https://gerrit.osmocom.org/libosmocore
logging: Add ability to save/print current log filters
This enables the persistent configuration of let's say 'log filter imsi 012345678' for a given log file in the config file.
This commit is contained in:
parent
276ca4b172
commit
fb84f325b8
|
@ -95,6 +95,17 @@ struct log_target;
|
||||||
typedef int log_filter(const struct log_context *ctx,
|
typedef int log_filter(const struct log_context *ctx,
|
||||||
struct log_target *target);
|
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 */
|
/*! \brief Logging configuration, passed to \ref log_init */
|
||||||
struct log_info {
|
struct log_info {
|
||||||
/* \brief filter callback function */
|
/* \brief filter callback function */
|
||||||
|
@ -106,6 +117,11 @@ struct log_info {
|
||||||
unsigned int num_cat;
|
unsigned int num_cat;
|
||||||
/*! \brief total number of user categories (not library) */
|
/*! \brief total number of user categories (not library) */
|
||||||
unsigned int num_cat_user;
|
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 */
|
/*! \brief Type of logging target */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# This is _NOT_ the library release version, it's an API version.
|
# 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
|
# 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
|
AM_CFLAGS = -Wall $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include
|
||||||
|
|
||||||
|
|
|
@ -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",
|
tgt->filter_map & LOG_FILTER_ALL ? "Enabled" : "Disabled",
|
||||||
VTY_NEWLINE);
|
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"
|
#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",
|
vty_out(vty, " logging filter all %u%s",
|
||||||
tgt->filter_map & LOG_FILTER_ALL ? 1 : 0, VTY_NEWLINE);
|
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_out(vty, " logging color %u%s", tgt->use_color ? 1 : 0,
|
||||||
VTY_NEWLINE);
|
VTY_NEWLINE);
|
||||||
|
|
Loading…
Reference in New Issue