From 03922c9091330d93d699247bd6e5f4a8491d640b Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 25 Oct 2013 09:22:37 -0700 Subject: [PATCH] jsonrpc: Only compose message to log if it's really going to be logged. This suppresses a testsuite failure when the testsuite is run from a directory whose name contains a non-ASCII character. I'd rather fix the problem but webpages like the following make it sound difficult or impossible on Python 2.x: http://stackoverflow.com/a/11742928 Signed-off-by: Ben Pfaff --- python/ovs/jsonrpc.py | 5 +++-- python/ovs/vlog.py | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/python/ovs/jsonrpc.py b/python/ovs/jsonrpc.py index c1540eb78..6e7a2cc06 100644 --- a/python/ovs/jsonrpc.py +++ b/python/ovs/jsonrpc.py @@ -1,4 +1,4 @@ -# Copyright (c) 2010, 2011, 2012 Nicira, Inc. +# Copyright (c) 2010, 2011, 2012, 2013 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -226,7 +226,8 @@ class Connection(object): return self.received_bytes def __log_msg(self, title, msg): - vlog.dbg("%s: %s %s" % (self.name, title, msg)) + if vlog.dbg_is_enabled(): + vlog.dbg("%s: %s %s" % (self.name, title, msg)) def send(self, msg): if self.status: diff --git a/python/ovs/vlog.py b/python/ovs/vlog.py index 8447c0c2f..478f08e86 100644 --- a/python/ovs/vlog.py +++ b/python/ovs/vlog.py @@ -92,6 +92,29 @@ class Vlog: def dbg(self, message, **kwargs): self.__log("DBG", message, **kwargs) + def __is_enabled(self, level): + level = LEVELS.get(level.lower(), logging.DEBUG) + for f, f_level in Vlog.__mfl[self.name].iteritems(): + f_level = LEVELS.get(f_level, logging.CRITICAL) + if level >= f_level: + return True + return False + + def emer_is_enabled(self): + return self.__is_enabled("EMER") + + def err_is_enabled(self): + return self.__is_enabled("ERR") + + def warn_is_enabled(self): + return self.__is_enabled("WARN") + + def info_is_enabled(self): + return self.__is_enabled("INFO") + + def dbg_is_enabled(self): + return self.__is_enabled("DBG") + def exception(self, message): """Logs 'message' at ERR log level. Includes a backtrace when in exception context.""" -- 2.45.2