mirror of
https://github.com/openvswitch/ovs
synced 2025-10-25 15:07:05 +00:00
tests: Don't log to syslog during tests.
Until now, "make check" generated a huge amount of output to syslog. This commit suppresses it. Acked-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
2
NEWS
2
NEWS
@@ -1,5 +1,7 @@
|
||||
Post-v2.10.0
|
||||
---------------------
|
||||
- The environment variable OVS_SYSLOG_METHOD, if set, is now used
|
||||
as the default syslog method.
|
||||
|
||||
|
||||
v2.10.0 - xx xxx xxxx
|
||||
|
||||
@@ -280,6 +280,8 @@ lib_libopenvswitch_la_SOURCES = \
|
||||
lib/syslog-direct.h \
|
||||
lib/syslog-libc.c \
|
||||
lib/syslog-libc.h \
|
||||
lib/syslog-null.c \
|
||||
lib/syslog-null.h \
|
||||
lib/syslog-provider.h \
|
||||
lib/table.c \
|
||||
lib/table.h \
|
||||
|
||||
60
lib/syslog-null.c
Normal file
60
lib/syslog-null.c
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2016 Nicira, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "syslog-null.h"
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "compiler.h"
|
||||
#include "syslog-provider.h"
|
||||
#include "util.h"
|
||||
|
||||
static void syslog_null_open(struct syslogger *this, int facility);
|
||||
static void syslog_null_log(struct syslogger *this, int pri, const char *msg);
|
||||
|
||||
static struct syslog_class syslog_null_class = {
|
||||
syslog_null_open,
|
||||
syslog_null_log,
|
||||
};
|
||||
|
||||
struct syslog_null {
|
||||
struct syslogger parent;
|
||||
};
|
||||
|
||||
/* This function creates object that delegate all logging to null's
|
||||
* syslog implementation. */
|
||||
struct syslogger *
|
||||
syslog_null_create(void)
|
||||
{
|
||||
struct syslog_null *this = xmalloc(sizeof *this);
|
||||
|
||||
this->parent.class = &syslog_null_class;
|
||||
this->parent.prefix = "";
|
||||
|
||||
return &this->parent;
|
||||
}
|
||||
|
||||
static void
|
||||
syslog_null_open(struct syslogger *this OVS_UNUSED, int facility OVS_UNUSED)
|
||||
{
|
||||
/* Nothing to do. */
|
||||
}
|
||||
|
||||
static void
|
||||
syslog_null_log(struct syslogger *this OVS_UNUSED, int pri OVS_UNUSED,
|
||||
const char *msg OVS_UNUSED)
|
||||
{
|
||||
/* Nothing to do. */
|
||||
}
|
||||
22
lib/syslog-null.h
Normal file
22
lib/syslog-null.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Nicira, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef SYSLOG_NULL_H
|
||||
#define SYSLOG_NULL_H 1
|
||||
|
||||
struct syslogger *syslog_null_create(void);
|
||||
|
||||
#endif /* syslog-null.h */
|
||||
12
lib/vlog.c
12
lib/vlog.c
@@ -39,6 +39,7 @@
|
||||
#include "svec.h"
|
||||
#include "syslog-direct.h"
|
||||
#include "syslog-libc.h"
|
||||
#include "syslog-null.h"
|
||||
#include "syslog-provider.h"
|
||||
#include "timeval.h"
|
||||
#include "unixctl.h"
|
||||
@@ -584,7 +585,9 @@ vlog_set_syslog_method(const char *method)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!strcmp(method, "libc")) {
|
||||
if (!strcmp(method, "null")) {
|
||||
syslogger = syslog_null_create();
|
||||
} else if (!strcmp(method, "libc")) {
|
||||
syslogger = syslog_libc_create();
|
||||
} else if (!strncmp(method, "udp:", 4) || !strncmp(method, "unix:", 5)) {
|
||||
syslogger = syslog_direct_create(method);
|
||||
@@ -778,7 +781,12 @@ vlog_init(void)
|
||||
* log anything before calling ovsthread_once_done() will deadlock. */
|
||||
atomic_read_explicit(&log_facility, &facility, memory_order_relaxed);
|
||||
if (!syslogger) {
|
||||
syslogger = syslog_libc_create();
|
||||
char *env = getenv("OVS_SYSLOG_METHOD");
|
||||
if (env && env[0]) {
|
||||
vlog_set_syslog_method(env);
|
||||
} else {
|
||||
syslogger = syslog_libc_create();
|
||||
}
|
||||
}
|
||||
syslogger->class->openlog(syslogger, facility ? facility : LOG_DAEMON);
|
||||
ovsthread_once_done(&once);
|
||||
|
||||
@@ -83,7 +83,7 @@ Specify \fImethod\fR how syslog messages should be sent to syslog daemon.
|
||||
Following forms are supported:
|
||||
.RS
|
||||
.IP \(bu
|
||||
\fBlibc\fR, use libc \fBsyslog()\fR function. This is the default behavior.
|
||||
\fBlibc\fR, use libc \fBsyslog()\fR function.
|
||||
Downside of using this options is that libc adds fixed prefix to every
|
||||
message before it is actually sent to the syslog daemon over \fB/dev/log\fR
|
||||
UNIX domain socket.
|
||||
@@ -103,4 +103,9 @@ to listen on the specified UDP port, accidental iptables rules could be
|
||||
interfering with local syslog traffic and there are some security
|
||||
considerations that apply to UDP sockets, but do not apply to UNIX domain
|
||||
sockets.
|
||||
.IP \(bu
|
||||
\fBnull\fR, discards all messages logged to syslog.
|
||||
.RE
|
||||
.IP
|
||||
The default is taken from the \fBOVS_SYSLOG_METHOD\fR environment
|
||||
variable; if it is unset, the default is \fBlibc\fR.
|
||||
|
||||
11
lib/vlog.xml
11
lib/vlog.xml
@@ -114,7 +114,7 @@
|
||||
<ul>
|
||||
<li>
|
||||
<code>libc</code>, to use the libc <code>syslog()</code> function.
|
||||
This is the default behavior. Downside of using this options is that
|
||||
Downside of using this options is that
|
||||
libc adds fixed prefix to every message before it is actually sent to
|
||||
the syslog daemon over <code>/dev/log</code> UNIX domain socket.
|
||||
</li>
|
||||
@@ -139,6 +139,15 @@
|
||||
local syslog traffic and there are some security considerations that
|
||||
apply to UDP sockets, but do not apply to UNIX domain sockets.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<code>null</code>, to discard all messages logged to syslog.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The default is taken from the <code>OVS_SYSLOG_METHOD</code> environment
|
||||
variable; if it is unset, the default is <code>libc</code>.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@@ -305,9 +305,11 @@ class Vlog(object):
|
||||
return
|
||||
|
||||
logger = logging.getLogger('syslog')
|
||||
# If there is no infrastructure to support python syslog, disable
|
||||
# the logger to avoid repeated errors.
|
||||
if not os.path.exists("/dev/log"):
|
||||
# Disable the logger if there is no infrastructure to support python
|
||||
# syslog (to avoid repeated errors) or if the "null" syslog method
|
||||
# requested by environment.
|
||||
if (not os.path.exists("/dev/log")
|
||||
or os.environ.get('OVS_SYSLOG_METHOD') == "null"):
|
||||
logger.disabled = True
|
||||
return
|
||||
|
||||
|
||||
@@ -212,3 +212,7 @@ unset NO_PROXY
|
||||
# Avoid OVN environment variables leaking in from external environment.
|
||||
unset OVN_NB_DB
|
||||
unset OVN_SB_DB
|
||||
|
||||
# Prevent logging to syslog during tests.
|
||||
OVS_SYSLOG_METHOD=null
|
||||
export OVS_SYSLOG_METHOD
|
||||
|
||||
Reference in New Issue
Block a user