Skip to content

Commit

Permalink
Merge pull request #302 from steveandwang/5322
Browse files Browse the repository at this point in the history
5322
  • Loading branch information
ptnapoleon committed Jun 11, 2015
2 parents d2c4c8b + 5f00c44 commit 2063466
Showing 1 changed file with 25 additions and 4 deletions.
29 changes: 25 additions & 4 deletions ccmlib/cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ def __init__(self, path, name, partitioner=None, install_dir=None, create_direct
self.__path = path
self.__version = None
self.use_vnodes = False
# Classes that are to follow the respective logging level
self._debug = []
self._trace = []

##This is incredibly important for
##backwards compatibility.
Expand Down Expand Up @@ -112,6 +115,12 @@ def add(self, node, is_seed, data_center=None):
self._update_config()
node.data_center = data_center
node.set_log_level(self.__log_level)

for debug_class in self._debug:
node.set_log_level("DEBUG", debug_class)
for trace_class in self._trace:
node.set_log_level("TRACE", trace_class)

if data_center is not None:
self.__update_topology_files()
node._save()
Expand Down Expand Up @@ -293,16 +302,28 @@ def stop(self, wait=True, gently=True):
not_running.append(node)
return not_running

def set_log_level(self, new_level, class_name=None):
def set_log_level(self, new_level, class_names=None):
known_level = [ 'TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR' ]
if new_level not in known_level:
raise common.ArgumentError("Unknown log level %s (use one of %s)" % (new_level, " ".join(known_level)))

self.__log_level = new_level
self._update_config()
if class_names:
for class_name in class_names:
if new_level == 'DEBUG':
if class_name in self._trace:
raise common.ArgumentError("Class %s already in TRACE" % (class_name))
self._debug.append(class_name)
if new_level == 'TRACE':
if class_name in self._debug:
raise common.ArgumentError("Class %s already in DEBUG" % (class_name))
self._trace.append(class_name)
else:
self.__log_level = new_level
self._update_config()

for node in self.nodelist():
node.set_log_level(new_level, class_name)
for class_name in class_names:
node.set_log_level(new_level, class_name)

def nodetool(self, nodetool_cmd):
for node in list(self.nodes.values()):
Expand Down

0 comments on commit 2063466

Please sign in to comment.