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,
|
||||
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 */
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue