added log level management to interface and lish

This commit is contained in:
Johannes Findeisen 2013-11-23 21:33:02 +01:00
commit 1b5ddec576
3 changed files with 34 additions and 11 deletions

View file

@ -161,7 +161,7 @@ def main():
print("\nScheduled " + str(job_count) + " jobs") print("\nScheduled " + str(job_count) + " jobs")
interface = LinspectorInterface(jobs, scheduler, lin_conf) interface = LinspectorInterface(jobs, scheduler, lin_conf, root_logger)
if "jsonrpc_backend" in core and core["jsonrpc_backend"]: if "jsonrpc_backend" in core and core["jsonrpc_backend"]:
jsonrpc = JsonrpcBackend(interface, core) jsonrpc = JsonrpcBackend(interface, core)

View file

@ -20,17 +20,19 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from collections import OrderedDict import logging
from logging import getLogger
logger = getLogger(__name__) from collections import OrderedDict
logger = logging.getLogger(__name__)
class LinspectorInterface(object): class LinspectorInterface(object):
def __init__(self, jobs, scheduler, linspectorConfig): def __init__(self, jobs, scheduler, linspectorConfig, root_logger):
self.jobs = jobs self.jobs = jobs
self._scheduler = scheduler self._scheduler = scheduler
self._config = linspectorConfig self._config = linspectorConfig
self._root_logger = root_logger
self._recompute_job_hex_strings() self._recompute_job_hex_strings()
def _recompute_job_hex_strings(self): def _recompute_job_hex_strings(self):
@ -161,3 +163,14 @@ class LinspectorInterface(object):
def get_thread_count(self): def get_thread_count(self):
return {"Num Threads": str(self._scheduler._threadpool.num_threads), return {"Num Threads": str(self._scheduler._threadpool.num_threads),
"Max Threads": str(self._scheduler._threadpool.max_threads)} "Max Threads": str(self._scheduler._threadpool.max_threads)}
def set_log_level(self, log_level):
if log_level == "debug":
level = logging.DEBUG
elif log_level == "error":
level = logging.ERROR
elif log_level == "info":
level = logging.INFO
elif log_level == "warning":
level = logging.WARNING
self._root_logger.setLevel(level)

View file

@ -350,7 +350,9 @@ Usage:
pass pass
def do_log(self, text): def do_log(self, text):
if text == "less": text = shsplit(text)
if text[0] == "less":
try: try:
# TODO: do the less on the logfile set by args and not a static path # TODO: do the less on the logfile set by args and not a static path
with open(os.path.dirname(os.path.abspath(__file__)) + "/../../log/linspector.log"): with open(os.path.dirname(os.path.abspath(__file__)) + "/../../log/linspector.log"):
@ -358,7 +360,13 @@ Usage:
except IOError: except IOError:
self.print_color(RED, "Logfile not found.") self.print_color(RED, "Logfile not found.")
self.help_log() self.help_log()
elif text == "more": elif text[0] == "level":
if text[1] in ["debug", "error", "info", "warning"]:
self.interface.set_log_level(text[1])
self.print_color(GREEN, "Setting log level to: " + text[1])
else:
self.print_color(RED, "Log level " + text[1] + " not supported")
elif text[0] == "more":
try: try:
# TODO: do the more on the logfile set by args and not a static path # TODO: do the more on the logfile set by args and not a static path
with open(os.path.dirname(os.path.abspath(__file__)) + "/../../log/linspector.log"): with open(os.path.dirname(os.path.abspath(__file__)) + "/../../log/linspector.log"):
@ -366,7 +374,7 @@ Usage:
except IOError: except IOError:
self.print_color(RED, "Logfile not found.") self.print_color(RED, "Logfile not found.")
self.help_log() self.help_log()
elif text == "tail": elif text[0] == "tail":
try: try:
# TODO: do the tail on the logfile set by args and not a static path # TODO: do the tail on the logfile set by args and not a static path
with open(os.path.dirname(os.path.abspath(__file__)) + "/../../log/linspector.log"): with open(os.path.dirname(os.path.abspath(__file__)) + "/../../log/linspector.log"):
@ -379,6 +387,8 @@ Usage:
print(''' print('''
Usage: Usage:
less less on the linspector logfile (press "q" to exit) less less on the linspector logfile (press "q" to exit)
level <LEVEL> set the log level to <LEVEL>
supported levels are debug, error, info, warning
more more on the linspector logfile (press "q" to exit) more more on the linspector logfile (press "q" to exit)
tail tail (-F) on the linspector logfile (Ctrl+C to exit) tail tail (-F) on the linspector logfile (Ctrl+C to exit)
''') ''')