Various logging cleanups in code and doc

* docs/logging.html[.in] qemud/libvirtd.conf qemud/qemud.c
  src/logging.[ch]: cleanup the logging code and docs to remove
  all references to log level 0, cleanup hardcoded values and add
  a default VIR_LOG_DEFAULT value, patch by Amy Griffis
daniel
This commit is contained in:
Daniel Veillard 2009-07-01 11:21:15 +00:00
parent f7bd305904
commit 2a004db6c7
7 changed files with 28 additions and 21 deletions

View File

@ -1,3 +1,10 @@
Wed Jul 1 13:18:37 CEST 2009 Daniel Veillard <veillard@redhat.com>
* docs/logging.html[.in] qemud/libvirtd.conf qemud/qemud.c
src/logging.[ch]: cleanup the logging code and docs to remove
all references to log level 0, cleanup hardcoded values and add
a default VIR_LOG_DEFAULT value, patch by Amy Griffis
Wed Jul 1 12:38:28 CEST 2009 Daniel Veillard <veillard@redhat.com> Wed Jul 1 12:38:28 CEST 2009 Daniel Veillard <veillard@redhat.com>
* src/opennebula/one_conf.c src/opennebula/one_driver.c: cleanup * src/opennebula/one_conf.c src/opennebula/one_driver.c: cleanup

View File

@ -151,7 +151,7 @@
variables, stored in the configuration file: variables, stored in the configuration file:
</p> </p>
<ul><li>log_level: accepts the following values: <ul><li>log_level: accepts the following values:
<ul><li>0: no logging at all</li><li>4: only errors</li><li>3: warnings and errors</li><li>2: informations, warnings and errors</li><li>1: debug and everything</li></ul></li><li>log_filters: allow to define logging filters</li><li>log_outputs: allow to define logging outputs</li></ul> <ul><li>4: only errors</li><li>3: warnings and errors</li><li>2: informations, warnings and errors</li><li>1: debug and everything</li></ul></li><li>log_filters: allow to define logging filters</li><li>log_outputs: allow to define logging outputs</li></ul>
<p>In both case the syntax for filters and outputs is similar.</p> <p>In both case the syntax for filters and outputs is similar.</p>
<p>The format for a filter is:</p> <p>The format for a filter is:</p>
<pre>x:name</pre> <pre>x:name</pre>
@ -170,15 +170,15 @@
given <code>name</code> as the ident</li><li><code>x:file:file_path</code>output to a file, with the given given <code>name</code> as the ident</li><li><code>x:file:file_path</code>output to a file, with the given
filepath</li></ul> filepath</li></ul>
<p>In all cases the x prefix is the minimal level, acting as a filter:</p> <p>In all cases the x prefix is the minimal level, acting as a filter:</p>
<ul><li>0: everything</li><li>1: DEBUG</li><li>2: INFO</li><li>3: WARNING</li><li>4: ERROR</li></ul> <ul><li>1: DEBUG</li><li>2: INFO</li><li>3: WARNING</li><li>4: ERROR</li></ul>
<p>Multiple output can be defined , they just need to be separated by <p>Multiple output can be defined , they just need to be separated by
spaces, e.g.: <code>"3:syslog:libvirtd 0:file:/tmp/libvirt.log"</code> spaces, e.g.: <code>"3:syslog:libvirtd 1:file:/tmp/libvirt.log"</code>
will log all warnings and errors to syslog under the libvirtd ident will log all warnings and errors to syslog under the libvirtd ident
but also log everything debugging and informations included in the but also log everything debugging and informations included in the
file <code>/tmp/libvirt.log</code></p> file <code>/tmp/libvirt.log</code></p>
<p>For example setting up the following:</p> <p>For example setting up the following:</p>
<pre>export LIBVIRT_DEBUG=1 <pre>export LIBVIRT_DEBUG=1
export LIBVIRT_LOG_OUTPUTS="0:file:virsh.log"</pre> export LIBVIRT_LOG_OUTPUTS="1:file:virsh.log"</pre>
<p>and then running virsh will accumulate the logs in the <p>and then running virsh will accumulate the logs in the
<code>virsh.log</code> file in a way similar to:</p> <code>virsh.log</code> file in a way similar to:</p>
<pre>14:29:04.771: debug : virInitialize:278 : register drivers <pre>14:29:04.771: debug : virInitialize:278 : register drivers

View File

@ -49,7 +49,6 @@
<ul> <ul>
<li>log_level: accepts the following values: <li>log_level: accepts the following values:
<ul> <ul>
<li>0: no logging at all</li>
<li>4: only errors</li> <li>4: only errors</li>
<li>3: warnings and errors</li> <li>3: warnings and errors</li>
<li>2: informations, warnings and errors</li> <li>2: informations, warnings and errors</li>
@ -84,20 +83,19 @@
</ul> </ul>
<p>In all cases the x prefix is the minimal level, acting as a filter:</p> <p>In all cases the x prefix is the minimal level, acting as a filter:</p>
<ul> <ul>
<li>0: everything</li>
<li>1: DEBUG</li> <li>1: DEBUG</li>
<li>2: INFO</li> <li>2: INFO</li>
<li>3: WARNING</li> <li>3: WARNING</li>
<li>4: ERROR</li> <li>4: ERROR</li>
</ul> </ul>
<p>Multiple output can be defined , they just need to be separated by <p>Multiple output can be defined , they just need to be separated by
spaces, e.g.: <code>"3:syslog:libvirtd 0:file:/tmp/libvirt.log"</code> spaces, e.g.: <code>"3:syslog:libvirtd 1:file:/tmp/libvirt.log"</code>
will log all warnings and errors to syslog under the libvirtd ident will log all warnings and errors to syslog under the libvirtd ident
but also log everything debugging and informations included in the but also log everything debugging and informations included in the
file <code>/tmp/libvirt.log</code></p> file <code>/tmp/libvirt.log</code></p>
<p>For example setting up the following:</p> <p>For example setting up the following:</p>
<pre>export LIBVIRT_DEBUG=1 <pre>export LIBVIRT_DEBUG=1
export LIBVIRT_LOG_OUTPUTS="0:file:virsh.log"</pre> export LIBVIRT_LOG_OUTPUTS="1:file:virsh.log"</pre>
<p>and then running virsh will accumulate the logs in the <p>and then running virsh will accumulate the logs in the
<code>virsh.log</code> file in a way similar to:</p> <code>virsh.log</code> file in a way similar to:</p>
<pre>14:29:04.771: debug : virInitialize:278 : register drivers <pre>14:29:04.771: debug : virInitialize:278 : register drivers

View File

@ -269,7 +269,7 @@
# Logging controls # Logging controls
# #
# Logging level: 0 none, 4 errors, 3 warnings, 2 informations, 1 debug # Logging level: 4 errors, 3 warnings, 2 informations, 1 debug
# basically 1 will log everything possible # basically 1 will log everything possible
#log_level = 3 #log_level = 3
@ -303,13 +303,12 @@
# x:file:file_path # x:file:file_path
# output to a file, with the given filepath # output to a file, with the given filepath
# In all case the x prefix is the minimal level, acting as a filter # In all case the x prefix is the minimal level, acting as a filter
# 0: everything
# 1: DEBUG # 1: DEBUG
# 2: INFO # 2: INFO
# 3: WARNING # 3: WARNING
# 4: ERROR # 4: ERROR
# #
# Multiple output can be defined , they just need to be separated by spaces. # Multiple output can be defined, they just need to be separated by spaces.
# e.g.: # e.g.:
# log_outputs="3:syslog:libvirtd" # log_outputs="3:syslog:libvirtd"
# to log all warnings and errors to syslog under the libvirtd ident # to log all warnings and errors to syslog under the libvirtd ident

View File

@ -128,7 +128,7 @@ static int sigwrite = -1; /* Signal handler pipe */
static int ipsock = 0; /* -l Listen for TCP/IP */ static int ipsock = 0; /* -l Listen for TCP/IP */
/* Defaults for logging */ /* Defaults for logging */
static int log_level = 3; static int log_level = VIR_LOG_DEFAULT;
static char *log_filters = NULL; static char *log_filters = NULL;
static char *log_outputs = NULL; static char *log_outputs = NULL;
@ -2499,15 +2499,16 @@ qemudSetLogging(virConfPtr conf, const char *filename) {
log_outputs = strdup(debugEnv); log_outputs = strdup(debugEnv);
} }
if (!log_outputs) { if (!log_outputs) {
char *tmp = NULL;
if (godaemon) { if (godaemon) {
char *tmp = NULL;
if (virAsprintf (&tmp, "%d:syslog:libvirtd", log_level) < 0) if (virAsprintf (&tmp, "%d:syslog:libvirtd", log_level) < 0)
goto free_and_fail; goto free_and_fail;
virLogParseOutputs (tmp);
VIR_FREE (tmp);
} else { } else {
virLogParseOutputs("0:stderr:libvirtd"); if (virAsprintf(&tmp, "%d:stderr", log_level) < 0)
goto free_and_fail;
} }
virLogParseOutputs(tmp);
VIR_FREE(tmp);
} else { } else {
virLogParseOutputs(log_outputs); virLogParseOutputs(log_outputs);
} }

View File

@ -119,7 +119,7 @@ static int virLogNbOutputs = 0;
/* /*
* Default priorities * Default priorities
*/ */
static virLogPriority virLogDefaultPriority = VIR_LOG_WARN; static virLogPriority virLogDefaultPriority = VIR_LOG_DEFAULT;
static int virLogResetFilters(void); static int virLogResetFilters(void);
static int virLogResetOutputs(void); static int virLogResetOutputs(void);
@ -174,7 +174,7 @@ int virLogStartup(void) {
virLogLen = 0; virLogLen = 0;
virLogStart = 0; virLogStart = 0;
virLogEnd = 0; virLogEnd = 0;
virLogDefaultPriority = VIR_LOG_WARN; virLogDefaultPriority = VIR_LOG_DEFAULT;
virLogUnlock(); virLogUnlock();
return(0); return(0);
} }
@ -196,7 +196,7 @@ int virLogReset(void) {
virLogLen = 0; virLogLen = 0;
virLogStart = 0; virLogStart = 0;
virLogEnd = 0; virLogEnd = 0;
virLogDefaultPriority = VIR_LOG_WARN; virLogDefaultPriority = VIR_LOG_DEFAULT;
virLogUnlock(); virLogUnlock();
return(0); return(0);
} }
@ -689,7 +689,7 @@ int virLogParseOutputs(const char *outputs) {
virSkipSpaces(&cur); virSkipSpaces(&cur);
while (*cur != 0) { while (*cur != 0) {
prio= virParseNumber(&cur); prio= virParseNumber(&cur);
if ((prio < 0) || (prio > 4)) if ((prio < VIR_LOG_DEBUG) || (prio > VIR_LOG_ERROR))
return(-1); return(-1);
if (*cur != ':') if (*cur != ':')
return(-1); return(-1);
@ -770,7 +770,7 @@ int virLogParseFilters(const char *filters) {
virSkipSpaces(&cur); virSkipSpaces(&cur);
while (*cur != 0) { while (*cur != 0) {
prio= virParseNumber(&cur); prio= virParseNumber(&cur);
if ((prio < 0) || (prio > 4)) if ((prio < VIR_LOG_DEBUG) || (prio > VIR_LOG_ERROR))
return(-1); return(-1);
if (*cur != ':') if (*cur != ':')
return(-1); return(-1);

View File

@ -77,6 +77,8 @@ typedef enum {
VIR_LOG_ERROR, VIR_LOG_ERROR,
} virLogPriority; } virLogPriority;
#define VIR_LOG_DEFAULT VIR_LOG_WARN
/** /**
* virLogOutputFunc: * virLogOutputFunc:
* @category: the category for the message * @category: the category for the message