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
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
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
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