Ejemplo n.º 1
0
def getLogLineBNF():
    global logLineBNF
    
    if logLineBNF is None:
        integer = Word( nums )
        ipAddress = delimitedList( integer, ".", combine=True )
        
        timeZoneOffset = Word("+-",nums)
        month = Word(string.uppercase, string.lowercase, exact=3)
        serverDateTime = Group( Suppress("[") + 
                                Combine( integer + "/" + month + "/" + integer +
                                        ":" + integer + ":" + integer + ":" + integer ) +
                                timeZoneOffset + 
                                Suppress("]") )
                         
        logLineBNF = ( ipAddress.setResultsName("ipAddr") + 
                       Suppress("-") +
                       ("-" | Word( alphas+nums+"@._" )).setResultsName("auth") +
                       serverDateTime.setResultsName("timestamp") + 
                       dblQuotedString.setResultsName("cmd").setParseAction(getCmdFields) +
                       (integer | "-").setResultsName("statusCode") + 
                       (integer | "-").setResultsName("numBytesSent")  + 
                       dblQuotedString.setResultsName("referrer").setParseAction(removeQuotes) +
                       dblQuotedString.setResultsName("clientSfw").setParseAction(removeQuotes) )
    return logLineBNF
Ejemplo n.º 2
0
def getLogLineBNF():
    global logLineBNF

    if logLineBNF is None:
        integer = Word(nums)
        ipAddress = delimitedList(integer, ".", combine=True)

        timeZoneOffset = Word("+-", nums)
        month = Word(string.uppercase, string.lowercase, exact=3)
        serverDateTime = Group(
            Suppress("[") +
            Combine(integer + "/" + month + "/" + integer + ":" + integer +
                    ":" + integer + ":" + integer) + timeZoneOffset +
            Suppress("]"))

        logLineBNF = (
            ipAddress.setResultsName("ipAddr") + Suppress("-") +
            ("-" | Word(alphas + nums + "@._")).setResultsName("auth") +
            serverDateTime.setResultsName("timestamp") +
            dblQuotedString.setResultsName("cmd").setParseAction(getCmdFields)
            + (integer | "-").setResultsName("statusCode") +
            (integer | "-").setResultsName("numBytesSent") +
            dblQuotedString.setResultsName("referrer").setParseAction(
                removeQuotes) + dblQuotedString.setResultsName(
                    "clientSfw").setParseAction(removeQuotes))
    return logLineBNF
Ejemplo n.º 3
0
    def __get_weblog_grammar():
        integer = Word(nums)
        ip_address = delimitedList(integer, ".", combine=True)
        time_zone_offset = Word("+-", nums)
        month = Word(string.ascii_uppercase, string.ascii_lowercase, exact=3)
        server_date_time = Group(
            Combine("[" + integer + "/" + month + "/" + integer + ":" +
                    integer + ":" + integer + ":" + integer) +
            Combine(time_zone_offset + "]"))

        weblog_grammar = (
            ip_address.setResultsName("ip_address") +
            Word("-").setResultsName("dash") +
            ("-" | Word(alphas + nums + "@._")).setResultsName("auth") +
            server_date_time.setResultsName("timestamp") +
            dblQuotedString.setResultsName("command") +
            (integer | "-").setResultsName("status_code") +
            (integer | "-").setResultsName("num_bytes") +
            dblQuotedString.setResultsName("referrer") +
            dblQuotedString.setResultsName("client_agent"))

        return weblog_grammar
Ejemplo n.º 4
0
def buildBNF():

    integer = Word(nums)
    ipAddress = delimitedList(integer, ".", combine=True)

    timeZoneOffset = Word("+-", nums)
    month = Word(string.ascii_uppercase, string.ascii_lowercase, exact=3)
    serverDateTime = Group(
        Suppress("[") + Combine(integer + "/" + month + "/" + integer + ":" +
                                integer + ":" + integer + ":" + integer) +
        timeZoneOffset + Suppress("]"))

    loglineBNF = (
        ipAddress.setResultsName("ipAddr") + Suppress("-") +
        ("-" | Word(alphas + nums + "@._")).setResultsName("auth") +
        serverDateTime.setResultsName("timestamp") +
        dblQuotedString.setResultsName("cmd").setParseAction(getFields) +
        (integer | "-").setResultsName("statusCode") +
        (integer | "-").setResultsName("numBytesSent"))

    return loglineBNF