# Online Python compiler (interpreter) to run Python online.
# Write Python 3 code in this online editor and run i

import cgi
import re


# RE to determine the class of a log message.
reLogExtractor = re.compile(# parse over "date mumble process[pid]: [mumble." (PID is optional)
            r'^[^][]*(\[\d*\])?:.*\b'
                           # any of the following
              
            r'(?:'
r'(?P<logError>EMERG|EMERGENCY|ERR(?:OR)?|CRIT(?:TICAL)?|ALERT)|'
        r'(?P<logWarning>WARN(?:ING)?)|'
                           r'(?P<logNotice>NOTICE)|'
                           r'\[(?P<logNormal>[^\]]*)'
                           # close'm, parse over the "]"
                           r')\]')

# Return the CSS class of this log message.
def getLogMessageClass(msg):
    #print(msg)
    msgMatch = reLogExtractor.match(msg)
    print("msgMatch ==> ", msgMatch.lastgroup)
    return (msgMatch and msgMatch.lastgroup) or 'logNormal'

line=1

colorize = True

msg="Jun 7 12:42:02 brr-00 interceptor [0000]: [cluster/reader/[fdos:d7e2:2d90:1904::8]:7850-> [fd08:d7e2:2d90:1902::3]:15101.ERR] - {- -} Error reading header from [fd08:d7e2:2d90:1904::8]:7850: Connection reset by peer"


#msg="Jun 3 13:01:58 oak-int69 interceptor [66313]: [cluster/reader/[fdos:d7e2:2d90:1904::5]: 12264-> (fd08:d7e2:2d90: 1902: : 3]: 7850. WARN] - {- -} No heartbeat from channel [fd08:d7e2:2d90:1902:: 3]:7850 <=> [fd08:d7e2:2d90: 1904::5]:12264. Closing channel."

def getLogLineHTML(line, msg, colorize):
    messageClass = colorize and getLogMessageClass(msg) or 'logNormal'
   
    print(msg)
 
    
    print(messageClass)
    
    oddEvenClass = ['logTableEven', 'logTableOdd'][line % 2]
    # msg = cgi.escape(msg)
    return '<div class="%s %s">%s</div>' % (messageClass, oddEvenClass, msg)
    
    
getLogLineHTML(line, msg, colorize)