From 0ce939264d776379d09b477bf21f950bb736a294 Mon Sep 17 00:00:00 2001 From: AdamISZ Date: Mon, 14 Jan 2019 20:01:11 +0100 Subject: [PATCH] Allow user to switch off colored logging New config setting [LOGGING]color=true/false, by default true; if false logging to terminal has no coloring. --- jmbase/jmbase/__init__.py | 2 +- jmbase/jmbase/support.py | 8 +++++++- jmclient/jmclient/configure.py | 12 +++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/jmbase/jmbase/__init__.py b/jmbase/jmbase/__init__.py index 5c59349..67417c8 100644 --- a/jmbase/jmbase/__init__.py +++ b/jmbase/jmbase/__init__.py @@ -4,6 +4,6 @@ from builtins import * from .support import (get_log, chunks, debug_silence, jmprint, joinmarket_alert, core_alert, get_password, - set_logging_level) + set_logging_level, set_logging_color) from .commands import * diff --git a/jmbase/jmbase/support.py b/jmbase/jmbase/support.py index e0f14cc..4330b29 100644 --- a/jmbase/jmbase/support.py +++ b/jmbase/jmbase/support.py @@ -9,7 +9,7 @@ from chromalog.log import ( ColorizingStreamHandler, ColorizingFormatter, ) -from chromalog.colorizer import GenericColorizer +from chromalog.colorizer import GenericColorizer, MonochromaticColorizer from colorama import Fore, Back, Style # magic; importing e.g. 'info' actually instantiates @@ -102,6 +102,12 @@ def get_log(): def set_logging_level(level): handler.setLevel(level) +def set_logging_color(colored=False): + if colored: + handler.colorizer = jm_colorizer + else: + handler.colorizer = MonochromaticColorizer() + def chunks(d, n): return [d[x:x + n] for x in range(0, len(d), n)] diff --git a/jmclient/jmclient/configure.py b/jmclient/jmclient/configure.py index 9cb103d..367c0d6 100644 --- a/jmclient/jmclient/configure.py +++ b/jmclient/jmclient/configure.py @@ -12,7 +12,7 @@ from configparser import ConfigParser, NoOptionError import jmbitcoin as btc from jmclient.jsonrpc import JsonRpc from jmbase.support import (get_log, joinmarket_alert, core_alert, debug_silence, - set_logging_level, jmprint) + set_logging_level, jmprint, set_logging_color) from jmclient.podle import set_commitment_file log = get_log() @@ -166,6 +166,9 @@ socks5_port = 9050 # Log level for the files in the logs-folder will always be DEBUG console_log_level = INFO +# Use color-coded log messages to help distinguish log levels?: +color = true + [TIMEOUT] maker_timeout_sec = 60 unconfirm_timeout_sec = 180 @@ -439,6 +442,13 @@ def load_program_config(config_path=None, bs=None): except: jmprint("Failed to set logging level, must be DEBUG, INFO, WARNING, ERROR", "error") + + # Logs to the console are color-coded if user chooses (file is unaffected) + if global_singleton.config.get("LOGGING", "color") == "true": + set_logging_color(True) + else: + set_logging_color(False) + try: global_singleton.maker_timeout_sec = global_singleton.config.getint( 'TIMEOUT', 'maker_timeout_sec')