X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fvlog.c;h=4f6523f3d0f6bf6f3ec356dc9fd5e31ff017dc55;hb=a328a943f173391cd9a9a54e257c8dabcd463402;hp=2598111a415b11469831854d82bce1b817c32469;hpb=c84933bf9a73e334207b6b309749d9e9c3b04812;p=sliver-openvswitch.git diff --git a/lib/vlog.c b/lib/vlog.c index 2598111a4..4f6523f3d 100644 --- a/lib/vlog.c +++ b/lib/vlog.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -680,6 +680,31 @@ vlog(const struct vlog_module *module, enum vlog_level level, va_end(args); } +void +vlog_fatal_valist(const struct vlog_module *module_, enum vlog_level level, + const char *message, va_list args) +{ + struct vlog_module *module = (struct vlog_module *) module_; + + /* Don't log this message to the console to avoid redundancy with the + * message written by the later ovs_fatal_valist(). */ + module->levels[VLF_CONSOLE] = VLL_EMER; + + vlog_valist(module, level, message, args); + ovs_fatal_valist(0, message, args); +} + +void +vlog_fatal(const struct vlog_module *module, enum vlog_level level, + const char *message, ...) +{ + va_list args; + + va_start(args, message); + vlog_fatal_valist(module, level, message, args); + va_end(args); +} + bool vlog_should_drop(const struct vlog_module *module, enum vlog_level level, struct vlog_rate_limit *rl)