mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 01:51:26 +00:00
vlog: add "vlog/list-pattern" command
This patch allows to query logging format at the runtime for each destination with "vlog/list-pattern" command. Signed-off-by: Ansis Atteka <aatteka@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
parent
fe089c0d1e
commit
532e1463fc
2
NEWS
2
NEWS
@ -119,6 +119,8 @@ v2.4.0 - xx xxx xxxx
|
||||
See ovs-sim(1) for more information.
|
||||
- Support to configure method (--syslog-method argument) that determines
|
||||
how daemons will talk with syslog.
|
||||
- Support for "ovs-appctl vlog/list-pattern" command that lets to query
|
||||
logging message format for each destination.
|
||||
|
||||
|
||||
v2.3.0 - 14 Aug 2014
|
||||
|
@ -133,6 +133,7 @@ void vlog_set_levels(struct vlog_module *,
|
||||
char *vlog_set_levels_from_string(const char *) OVS_WARN_UNUSED_RESULT;
|
||||
void vlog_set_levels_from_string_assert(const char *);
|
||||
char *vlog_get_levels(void);
|
||||
char *vlog_get_patterns(void);
|
||||
bool vlog_is_enabled(const struct vlog_module *, enum vlog_level);
|
||||
bool vlog_should_drop(const struct vlog_module *, enum vlog_level,
|
||||
struct vlog_rate_limit *);
|
||||
|
@ -51,6 +51,9 @@ Sets the log pattern for \fIdestination\fR to \fIpattern\fR. Refer to
|
||||
.IP "\fBvlog/list\fR"
|
||||
Lists the supported logging modules and their current levels.
|
||||
.
|
||||
.IP "\fBvlog/list-pattern\fR"
|
||||
Lists logging patterns used for each destination.
|
||||
.
|
||||
.IP "\fBvlog/reopen\fR"
|
||||
Causes \fB\*(PN\fR to close and reopen its log file. (This is useful
|
||||
after rotating log files, to cause a new log file to be used.)
|
||||
|
39
lib/vlog.c
39
lib/vlog.c
@ -614,6 +614,17 @@ vlog_unixctl_list(struct unixctl_conn *conn, int argc OVS_UNUSED,
|
||||
free(msg);
|
||||
}
|
||||
|
||||
static void
|
||||
vlog_unixctl_list_pattern(struct unixctl_conn *conn, int argc OVS_UNUSED,
|
||||
const char *argv[] OVS_UNUSED, void *aux OVS_UNUSED)
|
||||
{
|
||||
char *msg;
|
||||
|
||||
msg = vlog_get_patterns();
|
||||
unixctl_command_reply(conn, msg);
|
||||
free(msg);
|
||||
}
|
||||
|
||||
static void
|
||||
vlog_unixctl_reopen(struct unixctl_conn *conn, int argc OVS_UNUSED,
|
||||
const char *argv[] OVS_UNUSED, void *aux OVS_UNUSED)
|
||||
@ -721,6 +732,8 @@ vlog_init(void)
|
||||
1, INT_MAX, vlog_unixctl_set, NULL);
|
||||
unixctl_command_register("vlog/list", "", 0, 0, vlog_unixctl_list,
|
||||
NULL);
|
||||
unixctl_command_register("vlog/list-pattern", "", 0, 0,
|
||||
vlog_unixctl_list_pattern, NULL);
|
||||
unixctl_command_register("vlog/enable-rate-limit", "[module]...",
|
||||
0, INT_MAX, vlog_enable_rate_limit, NULL);
|
||||
unixctl_command_register("vlog/disable-rate-limit", "[module]...",
|
||||
@ -785,6 +798,32 @@ vlog_get_levels(void)
|
||||
return ds_cstr(&s);
|
||||
}
|
||||
|
||||
/* Returns as a string current logging patterns for each destination.
|
||||
* This string must be released by caller. */
|
||||
char *
|
||||
vlog_get_patterns(void)
|
||||
{
|
||||
struct ds ds = DS_EMPTY_INITIALIZER;
|
||||
enum vlog_destination destination;
|
||||
|
||||
ovs_rwlock_rdlock(&pattern_rwlock);
|
||||
ds_put_format(&ds, " prefix format\n");
|
||||
ds_put_format(&ds, " ------ ------\n");
|
||||
|
||||
for (destination = 0; destination < VLF_N_DESTINATIONS; destination++) {
|
||||
struct destination *f = &destinations[destination];;
|
||||
const char *prefix = "none";
|
||||
|
||||
if (destination == VLF_SYSLOG && syslogger) {
|
||||
prefix = syslog_get_prefix(syslogger);
|
||||
}
|
||||
ds_put_format(&ds, "%-7s %-32s %s\n", f->name, prefix, f->pattern);
|
||||
}
|
||||
ovs_rwlock_unlock(&pattern_rwlock);
|
||||
|
||||
return ds_cstr(&ds);
|
||||
}
|
||||
|
||||
/* Returns true if a log message emitted for the given 'module' and 'level'
|
||||
* would cause some log output, false if that module and level are completely
|
||||
* disabled. */
|
||||
|
@ -112,6 +112,9 @@ and adjusting log levels.
|
||||
.IP "\fBvlog/list\fR"
|
||||
Lists the known logging modules and their current levels.
|
||||
.
|
||||
.IP "\fBvlog/list-pattern\fR"
|
||||
Lists logging pattern used for each destination.
|
||||
.
|
||||
.IP "\fBvlog/set\fR [\fIspec\fR]"
|
||||
Sets logging levels. Without any \fIspec\fR, sets the log level for
|
||||
every module and destination to \fBdbg\fR. Otherwise, \fIspec\fR is a
|
||||
|
@ -92,6 +92,7 @@ Common commands:\n\
|
||||
list-commands List commands supported by the target\n\
|
||||
version Print version of the target\n\
|
||||
vlog/list List current logging levels\n\
|
||||
vlog/list-pattern List logging patterns for each destination.\n\
|
||||
vlog/set [SPEC]\n\
|
||||
Set log levels as detailed in SPEC, which may include:\n\
|
||||
A valid module name (all modules, by default)\n\
|
||||
|
Loading…
x
Reference in New Issue
Block a user