Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fa2f6f9

Browse files
committed
colourize manually crafter "logging" messages
1 parent 412ba5c commit fa2f6f9

2 files changed

Lines changed: 56 additions & 8 deletions

File tree

lib/core/common.py

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
from extra.magic import magic
4949
from extra.odict.odict import OrderedDict
5050
from extra.safe2bin.safe2bin import safecharencode
51+
from extra.termcolor.termcolor import colored
5152
from lib.core.bigarray import BigArray
5253
from lib.core.data import conf
5354
from lib.core.data import kb
@@ -693,11 +694,54 @@ def singleTimeLogMessage(message, level=logging.INFO, flag=None):
693694
kb.singleLogFlags.add(flag)
694695
logger.log(level, message)
695696

697+
def setCurrentMessage(message):
698+
if "[CRITICAL]" in message:
699+
conf.currentMessage = "CRITICAL"
700+
elif "[ERROR]" in message:
701+
conf.currentMessage = "ERROR"
702+
elif "[WARNING]" in message:
703+
conf.currentMessage = "WARNING"
704+
elif "[INFO]" in message:
705+
conf.currentMessage = "INFO"
706+
elif "[DEBUG]" in message:
707+
conf.currentMessage = "DEBUG"
708+
elif "[PAYLOAD]" in message:
709+
conf.currentMessage = "PAYLOAD"
710+
elif "[TRAFFIC OUT]" in message:
711+
conf.currentMessage = "TRAFFIC OUT"
712+
elif "[TRAFFIC IN]" in message:
713+
conf.currentMessage = "TRAFFIC IN"
714+
715+
def setColour(message):
716+
if not hasattr(conf, "currentMessage"):
717+
return message
718+
719+
if conf.currentMessage == "CRITICAL":
720+
return colored(message, 'white', on_color='on_red', attrs=['bold'])
721+
elif conf.currentMessage == "ERROR":
722+
return colored(message, 'red', attrs=['bold'])
723+
elif conf.currentMessage == "WARNING":
724+
return colored(message, 'yellow')
725+
elif conf.currentMessage == "INFO":
726+
return colored(message, 'green')
727+
elif conf.currentMessage == "DEBUG":
728+
return colored(message, 'blue')
729+
elif conf.currentMessage == "PAYLOAD":
730+
return colored(message, 'magenta')
731+
elif conf.currentMessage == "TRAFFIC OUT":
732+
return colored(message, 'cyan')
733+
elif conf.currentMessage == "TRAFFIC IN":
734+
return colored(message, 'grey')
735+
else:
736+
return message
737+
696738
def dataToStdout(data, forceOutput=False):
697739
"""
698740
Writes text to the stdout (console) stream
699741
"""
700742

743+
message = ""
744+
701745
if not kb.get("threadException"):
702746
if forceOutput or not getCurrentThreadData().disableStdOut:
703747
try:
@@ -717,16 +761,19 @@ def dataToStdout(data, forceOutput=False):
717761
warnMsg += "corresponding output files. "
718762
singleTimeWarnMessage(warnMsg)
719763

720-
sys.stdout.write(output)
764+
message = output
721765
else:
722-
sys.stdout.write(data.encode(sys.stdout.encoding))
766+
message = data.encode(sys.stdout.encoding)
723767
except:
724-
sys.stdout.write(data.encode(UNICODE_ENCODING))
725-
finally:
726-
sys.stdout.flush()
727-
if kb.get("multiThreadMode"):
728-
logging._releaseLock()
729-
setFormatterPrependFlag(len(data) == 1 and data not in ('\n', '\r') or len(data) > 2 and data[0] == '\r' and data[-1] != '\n')
768+
message = data.encode(UNICODE_ENCODING)
769+
770+
sys.stdout.write(setColour(message))
771+
sys.stdout.flush()
772+
773+
if kb.get("multiThreadMode"):
774+
logging._releaseLock()
775+
776+
setFormatterPrependFlag(len(data) == 1 and data not in ('\n', '\r') or len(data) > 2 and data[0] == '\r' and data[-1] != '\n')
730777

731778
def dataToTrafficFile(data):
732779
if not conf.trafficFile:

lib/core/option.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1379,6 +1379,7 @@ def __setConfAttributes():
13791379
conf.authPassword = None
13801380
conf.boundaries = []
13811381
conf.cj = None
1382+
conf.currentMessage = None
13821383
conf.dbmsConnector = None
13831384
conf.dbmsHandler = None
13841385
conf.dnsServer = None

0 commit comments

Comments
 (0)