I'm still trying to reproduce/understand what is happening and building
a test case for the github issue if needed.
Consider the following HTTP access lines:
127.0.0.1 - - [17/Mar/2016:18:15:06 +0100] "GET /redacted HTTP/1.1"
200 59506
127.0.0.1 - - [17/Mar/2016:18:15:24 +0100] "OPTIONS / HTTP/1.1" 403
205 "-" "-"
And the following rule:
# This is just access_log. Perhaps literal is more efficient than
whitespace?
type=@apache_common:%[
{"type":"ipv4", "name":"ip"},
{"type":"whitespace"},
{"type":"word", "name":"ident"},
{"type":"whitespace"},
{"type":"word", "name":"user"},
{"type":"literal", "text":" ["},
{"type":"char-to", "name":"date", "extradata":"]"},
{"type":"literal", "text":"] \""},
{"type":"word", "name":"method"},
{"type":"whitespace"},
{"type":"char-to", "name":"request", "extradata":" "},
{"type":"literal", "text":" HTTP/"},
{"type":"float", "name":"httpversion"},
{"type":"literal", "text":"\""},
{"type":"whitespace"},
{"type":"number", "name":"response"},
{"type":"whitespace"},
{"type":"word", "name":"bytes"}
]%
#AFAIK this should accept null or apache combined log fields
type=@apache_combined:-
type=@apache_combined:%[
{"type":"whitespace"},
{"type":"quoted-string","name":"referrer"},
{"type":"whitespace"},
{"type":"quoted-string","name":"useragent"}
]%
rule=access_combined:%[
{"type":"@apache_common", "name":"."}
]%
*As expected*, the first line matches and the second doesn't:
{ "bytes": "59506", "response": "200", "httpversion": "1.1",
"request": "\/redacted", "method": "GET", "date":
"17\/Mar\/2016:18:15:06 +0100", "user": "-", "ident": "-", "ip":
"127.0.0.1" }
{ "originalmsg": "127.0.0.1 - - [17\/Mar\/2016:18:15:24 +0100]
\"OPTIONS \/ HTTP\/1.1\" 403 205 \"-\" \"-", "unparsed-data": "
\"-\" \"-" }
But if we try:
rule=access_combined:%[
{"type":"@apache_common", "name":"."},
{"type":"@apache_combined","name":"."}
]%
Doesnt parse any of them properly, and we're getting:
{ "originalmsg": "127.0.0.1 - - [17\/Mar\/2016:18:15:06 +0100] \"GET
\/redacted HTTP\/1.1\" 200 59506", "unparsed-data": "" }
{ "originalmsg": "127.0.0.1 - - [17\/Mar\/2016:18:15:24 +0100]
\"OPTIONS \/ HTTP\/1.1\" 403 205 \"-\" \"-", "unparsed-data": "
\"-\" \"-" }
Here's trace:
liblognorm: loading rulebase file '/test/apps/10-apache.rb'
liblognorm: rulebase version is 2
liblognorm: read rulebase line[~25]: 'type=@apache_common:%[
{"type":"ipv4", "name":"ip"}, {"type":"whitespace"},
{"type":"word", "name":"ident"}, {"type":"whitespace"},
{"type":"word", "name":"user"}, {"type":"literal", "text":"
["}, {"type":"char-to", "name":"date", "extradata":"]"},
{"type":"literal", "text":"] \""}, {"type":"word",
"name":"method"}, {"type":"whitespace"}, {"type":"char-to",
"name":"request", "extradata":" "}, {"type":"literal", "text":"
HTTP/"}, {"type":"float", "name":"httpversion"},
{"type":"literal", "text":"\""}, {"type":"whitespace"},
{"type":"number", "name":"response"}, {"type":"whitespace"},
{"type":"word", "name":"bytes"}]%'
liblognorm: type line to add: '@apache_common:%[ {"type":"ipv4",
"name":"ip"}, {"type":"whitespace"}, {"type":"word",
"name":"ident"}, {"type":"whitespace"}, {"type":"word",
"name":"user"}, {"type":"literal", "text":" ["},
{"type":"char-to", "name":"date", "extradata":"]"},
{"type":"literal", "text":"] \""}, {"type":"word",
"name":"method"}, {"type":"whitespace"}, {"type":"char-to",
"name":"request", "extradata":" "}, {"type":"literal", "text":"
HTTP/"}, {"type":"float", "name":"httpversion"},
{"type":"literal", "text":"\""}, {"type":"whitespace"},
{"type":"number", "name":"response"}, {"type":"whitespace"},
{"type":"word", "name":"bytes"}]%'
liblognorm: type name is '@apache_common'
liblognorm: type line to add: '%[ {"type":"ipv4", "name":"ip"},
{"type":"whitespace"}, {"type":"word", "name":"ident"},
{"type":"whitespace"}, {"type":"word", "name":"user"},
{"type":"literal", "text":" ["}, {"type":"char-to",
"name":"date", "extradata":"]"}, {"type":"literal", "text":"]
\""}, {"type":"word", "name":"method"}, {"type":"whitespace"},
{"type":"char-to", "name":"request", "extradata":" "},
{"type":"literal", "text":" HTTP/"}, {"type":"float",
"name":"httpversion"}, {"type":"literal", "text":"\""},
{"type":"whitespace"}, {"type":"number", "name":"response"},
{"type":"whitespace"}, {"type":"word", "name":"bytes"}]%'
liblognorm: ln_pdagFindType, name '@apache_common', bAdd: 1, nTypes 0
liblognorm: custom type '@apache_common' does not yet exist, adding...
liblognorm: addSampToTree 0 of 603
liblognorm: parsed literal: ''
liblognorm: ln_pdagAddParserInternal: [ { "type": "ipv4", "name":
"ip" }, { "type": "whitespace" }, { "type": "word", "name": "ident"
}, { "type": "whitespace" }, { "type": "word", "name": "user" }, {
"type": "literal", "text": " [" }, { "type": "char-to", "name":
"date", "extradata": "]" }, { "type": "literal", "text": "] \"" }, {
"type": "word", "name": "method" }, { "type": "whitespace" }, {
"type": "char-to", "name": "request", "extradata": " " }, { "type":
"literal", "text": " HTTP\/" }, { "type": "float", "name":
"httpversion" }, { "type": "literal", "text": "\"" }, { "type":
"whitespace" }, { "type": "number", "name": "response" }, { "type":
"whitespace" }, { "type": "word", "name": "bytes" } ]
liblognorm: parser 0: { "type": "ipv4", "name": "ip" }
liblognorm: ln_pdagAddParserInstance: { "type": "ipv4", "name": "ip"
}, nextnode (nil)
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c606e650, parser 0x7f97c606f010
liblognorm: parser 1: { "type": "whitespace" }
liblognorm: ln_pdagAddParserInstance: { "type": "whitespace" },
nextnode (nil)
liblognorm: assigned priority is 30000
...
liblognorm: pdag: 0x7f97c6071350, parser 0x7f97c606fa90
liblognorm: parser 17: { "type": "word", "name": "bytes" }
liblognorm: ln_pdagAddParserInstance: { "type": "word", "name":
"bytes" }, nextnode (nil)
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c60716e0, parser 0x7f97c606fa90
liblognorm: parsed literal: ''
liblognorm: end addSampToTree 603 of 603
liblognorm: read rulebase line[~26]: 'type=@apache_combined:-'
liblognorm: type line to add: '@apache_combined:-'
liblognorm: type name is '@apache_combined'
liblognorm: type line to add: '-'
liblognorm: ln_pdagFindType, name '@apache_combined', bAdd: 1, nTypes 1
liblognorm: custom type '@apache_combined' does not yet exist, adding...
liblognorm: addSampToTree 0 of 1
liblognorm: parsed literal: '-'
liblognorm: ln_pdagAddParserInternal: { "type": "literal", "text": "-" }
liblognorm: ln_pdagAddParserInstance: { "type": "literal", "text":
"-" }, nextnode (nil)
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c6070de0, parser 0x7f97c606fa90
liblognorm: end addSampToTree 1 of 1
liblognorm: read rulebase line[~32]: 'type=@apache_combined:%[
{"type":"whitespace"}, {"type":"quoted-string","name":"referrer"},
{"type":"whitespace"}, {"type":"quoted-string","name":"useragent"}]%'
liblognorm: type line to add: '@apache_combined:%[
{"type":"whitespace"}, {"type":"quoted-string","name":"referrer"},
{"type":"whitespace"}, {"type":"quoted-string","name":"useragent"}]%'
liblognorm: type name is '@apache_combined'
liblognorm: type line to add: '%[ {"type":"whitespace"},
{"type":"quoted-string","name":"referrer"}, {"type":"whitespace"},
{"type":"quoted-string","name":"useragent"}]%'
liblognorm: ln_pdagFindType, name '@apache_combined', bAdd: 1, nTypes 2
liblognorm: addSampToTree 0 of 138
liblognorm: parsed literal: ''
liblognorm: ln_pdagAddParserInternal: [ { "type": "whitespace" }, {
"type": "quoted-string", "name": "referrer" }, { "type":
"whitespace" }, { "type": "quoted-string", "name": "useragent" } ]
liblognorm: parser 0: { "type": "whitespace" }
liblognorm: ln_pdagAddParserInstance: { "type": "whitespace" },
nextnode (nil)
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c6070de0, parser 0x7f97c60713e0
liblognorm: parser comparison:
{ "type": "literal", "text": "-" }
{ "type": "whitespace" }
liblognorm: parser 1: { "type": "quoted-string", "name": "referrer" }
liblognorm: ln_pdagAddParserInstance: { "type": "quoted-string",
"name": "referrer" }, nextnode (nil)
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c6070c80, parser 0x7f97c6071b10
liblognorm: parser 2: { "type": "whitespace" }
liblognorm: ln_pdagAddParserInstance: { "type": "whitespace" },
nextnode (nil)
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c60713e0, parser 0x7f97c6071b10
liblognorm: parser 3: { "type": "quoted-string", "name": "useragent" }
liblognorm: ln_pdagAddParserInstance: { "type": "quoted-string",
"name": "useragent" }, nextnode (nil)
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c6071770, parser 0x7f97c6071b10
liblognorm: parsed literal: ''
liblognorm: end addSampToTree 138 of 138
liblognorm: read rulebase line[~36]: 'rule=access_combined:%[
{"type":"@apache_common", "name":"."},
{"type":"@apache_combined","name":"."}]%'
liblognorm: rule line to add: 'access_combined:%[
{"type":"@apache_common", "name":"."},
{"type":"@apache_combined","name":"."}]%'
liblognorm: tag found: 'access_combined'
liblognorm: addSampToTree 0 of 82
liblognorm: parsed literal: ''
liblognorm: ln_pdagAddParserInternal: [ { "type": "@apache_common",
"name": "." }, { "type": "@apache_combined", "name": "." } ]
liblognorm: parser 0: { "type": "@apache_common", "name": "." }
liblognorm: ln_pdagAddParserInstance: { "type": "@apache_common",
"name": "." }, nextnode (nil)
liblognorm: ln_pdagFindType, name '@apache_common', bAdd: 0, nTypes 2
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c606d0a0, parser 0x7f97c6070490
liblognorm: parser 1: { "type": "@apache_combined", "name": "." }
liblognorm: ln_pdagAddParserInstance: { "type": "@apache_combined",
"name": "." }, nextnode (nil)
liblognorm: ln_pdagFindType, name '@apache_combined', bAdd: 0, nTypes 2
liblognorm: assigned priority is 30000
liblognorm: pdag: 0x7f97c6071df0, parser 0x7f97c6071e80
liblognorm: parsed literal: ''
liblognorm: end addSampToTree 82 of 82
liblognorm: optimizing component @apache_common
liblognorm: pre sort, parser 0:ip[7680004]
liblognorm: post sort, parser 0:ip[7680004]
liblognorm: optimizing 0x7f97c606f050: field 0 type 'ipv4', name
'ip': 'UNKNOWN':
...
liblognorm: pre sort, parser 0:bytes[7680032]
liblognorm: post sort, parser 0:bytes[7680032]
liblognorm: optimizing 0x7f97c6071a80: field 0 type 'word', name
'bytes': 'UNKNOWN':
liblognorm: optimizing component @apache_combined
liblognorm: pre sort, parser 0:(null)[7680004]
liblognorm: pre sort, parser 1:(null)[7680004]
liblognorm: post sort, parser 0:(null)[7680004]
liblognorm: post sort, parser 1:(null)[7680004]
liblognorm: optimizing 0x7f97c6070870: field 0 type 'literal', name
'(null)': '-':
liblognorm: optimizing 0x7f97c6070c80: field 1 type 'whitespace',
name '(null)': 'UNKNOWN':
liblognorm: pre sort, parser 0:referrer[7680064]
liblognorm: post sort, parser 0:referrer[7680064]
liblognorm: optimizing 0x7f97c60713e0: field 0 type 'quoted-string',
name 'referrer': 'UNKNOWN':
liblognorm: pre sort, parser 0:(null)[7680004]
liblognorm: post sort, parser 0:(null)[7680004]
liblognorm: optimizing 0x7f97c6071770: field 0 type 'whitespace',
name '(null)': 'UNKNOWN':
liblognorm: pre sort, parser 0:useragent[7680064]
liblognorm: post sort, parser 0:useragent[7680064]
liblognorm: optimizing 0x7f97c606fb80: field 0 type 'quoted-string',
name 'useragent': 'UNKNOWN':
liblognorm: optimizing main pdag component
liblognorm: pre sort, parser 0:.[7680016]
liblognorm: post sort, parser 0:.[7680016]
liblognorm: optimizing 0x7f97c6071df0: field 0 type 'USER-DEFINED',
name '.': 'UNKNOWN':
liblognorm: pre sort, parser 0:.[7680016]
liblognorm: post sort, parser 0:.[7680016]
liblognorm: optimizing 0x7f97c6071b90: field 0 type 'USER-DEFINED',
name '.': 'UNKNOWN':
liblognorm: finished optimizing main pdag component
liblognorm: ---AFTER OPTIMIZATION------------------
liblognorm: COMPONENT: @apache_common
liblognorm: subDAG 0x7f97c606e650 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'ipv4', name 'ip': 'UNKNOWN': called 0
liblognorm: field type 'ipv4', name 'ip': 'UNKNOWN':
liblognorm: subDAG 0x7f97c606f050 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
...
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN':
liblognorm: subDAG 0x7f97c60716e0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'word', name 'bytes': 'UNKNOWN': called 0
liblognorm: field type 'word', name 'bytes': 'UNKNOWN':
liblognorm: subDAG [TERM] 0x7f97c6071a80 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: COMPONENT: @apache_combined
liblognorm: subDAG 0x7f97c6070de0 (children: 2 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'literal', name '(null)': '-': called 0
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN': called 0
liblognorm: field type 'literal', name '(null)': '-':
liblognorm: subDAG [TERM] 0x7f97c6070870 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN':
liblognorm: subDAG 0x7f97c6070c80 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'quoted-string', name 'referrer': 'UNKNOWN':
called 0
liblognorm: field type 'quoted-string', name 'referrer': 'UNKNOWN':
liblognorm: subDAG 0x7f97c60713e0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN': called 0
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN':
liblognorm: subDAG 0x7f97c6071770 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'quoted-string', name 'useragent': 'UNKNOWN':
called 0
liblognorm: field type 'quoted-string', name 'useragent': 'UNKNOWN':
liblognorm: subDAG [TERM] 0x7f97c606fb80 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: MAIN COMPONENT:
liblognorm: subDAG 0x7f97c606d0a0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN': called 0
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN':
liblognorm: subDAG 0x7f97c6071df0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN': called 0
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN':
liblognorm: subDAG [TERM] 0x7f97c6071b90 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: MAIN COMPONENT (alternative):
liblognorm: 0x7f97c606d0a0[ref 1]:
liblognorm: 0x7f97c6071df0[ref 1]: %.:USER-DEFINED%
liblognorm: 0x7f97c6071b90[ref 1]: %.:USER-DEFINED%%.:USER-DEFINED%
liblognorm: =======================================
number of tree nodes: 28
liblognorm: COMPONENT: @apache_common
liblognorm: subDAG 0x7f97c606e650 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'ipv4', name 'ip': 'UNKNOWN': called 0
liblognorm: field type 'ipv4', name 'ip': 'UNKNOWN':
...
liblognorm: subDAG 0x7f97c60716e0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'word', name 'bytes': 'UNKNOWN': called 0
liblognorm: field type 'word', name 'bytes': 'UNKNOWN':
liblognorm: subDAG [TERM] 0x7f97c6071a80 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: COMPONENT: @apache_combined
liblognorm: subDAG 0x7f97c6070de0 (children: 2 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'literal', name '(null)': '-': called 0
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN': called 0
liblognorm: field type 'literal', name '(null)': '-':
liblognorm: subDAG [TERM] 0x7f97c6070870 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN':
liblognorm: subDAG 0x7f97c6070c80 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'quoted-string', name 'referrer': 'UNKNOWN':
called 0
liblognorm: field type 'quoted-string', name 'referrer': 'UNKNOWN':
liblognorm: subDAG 0x7f97c60713e0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN': called 0
liblognorm: field type 'whitespace', name '(null)': 'UNKNOWN':
liblognorm: subDAG 0x7f97c6071770 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'quoted-string', name 'useragent': 'UNKNOWN':
called 0
liblognorm: field type 'quoted-string', name 'useragent': 'UNKNOWN':
liblognorm: subDAG [TERM] 0x7f97c606fb80 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: MAIN COMPONENT:
liblognorm: subDAG 0x7f97c606d0a0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN': called 0
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN':
liblognorm: subDAG 0x7f97c6071df0 (children: 1 parsers, ref 1)
[called 0, backtracked 0]
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN': called 0
liblognorm: field type 'USER-DEFINED', name '.': 'UNKNOWN':
liblognorm: subDAG [TERM] 0x7f97c6071b90 (children: 0 parsers, ref
1) [called 0, backtracked 0]
liblognorm: MAIN COMPONENT (alternative):
liblognorm: 0x7f97c606d0a0[ref 1]:
liblognorm: 0x7f97c6071df0[ref 1]: %.:USER-DEFINED%
liblognorm: 0x7f97c6071b90[ref 1]: %.:USER-DEFINED%%.:USER-DEFINED%
To normalize: '127.0.0.1 - - [17/Mar/2016:18:15:06 +0100] "GET
/redacted HTTP/1.1" 200 59506'
liblognorm: 0: enter parser, dag node 0x7f97c606d0a0, json
0x7f97c6071590
liblognorm: 0/0:trying 'USER-DEFINED' parser for field '.', data
'UNKNOWN'
liblognorm: calling custom parser '@apache_common'
liblognorm: 0: enter parser, dag node 0x7f97c606e650, json
0x7f97c60700f0
liblognorm: 0/1:trying 'ipv4' parser for field 'ip', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 9
liblognorm: 0: potential hit, trying subtree 0x7f97c606f050
liblognorm: 9: enter parser, dag node 0x7f97c606f050, json
0x7f97c60700f0
liblognorm: 9/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 9: potential hit, trying subtree 0x7f97c606f180
liblognorm: 10: enter parser, dag node 0x7f97c606f180, json
0x7f97c60700f0
liblognorm: 10/1:trying 'word' parser for field 'ident', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 10: potential hit, trying subtree 0x7f97c606f3e0
liblognorm: 11: enter parser, dag node 0x7f97c606f3e0, json
0x7f97c60700f0
liblognorm: 11/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 11: potential hit, trying subtree 0x7f97c606f610
liblognorm: 12: enter parser, dag node 0x7f97c606f610, json
0x7f97c60700f0
liblognorm: 12/1:trying 'word' parser for field 'user', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 12: potential hit, trying subtree 0x7f97c606f780
liblognorm: 13: enter parser, dag node 0x7f97c606f780, json
0x7f97c60700f0
liblognorm: 13/1:trying 'literal' parser for field '(null)', data ' ['
liblognorm: parser lookup returns 0, pParsed 2
liblognorm: 13: potential hit, trying subtree 0x7f97c606f820
liblognorm: 15: enter parser, dag node 0x7f97c606f820, json
0x7f97c60700f0
liblognorm: 15/1:trying 'char-to' parser for field 'date', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 26
liblognorm: 15: potential hit, trying subtree 0x7f97c606fc30
liblognorm: 41: enter parser, dag node 0x7f97c606fc30, json
0x7f97c60700f0
liblognorm: 41/1:trying 'literal' parser for field '(null)', data '] "'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 41: potential hit, trying subtree 0x7f97c606fdc0
liblognorm: 44: enter parser, dag node 0x7f97c606fdc0, json
0x7f97c60700f0
liblognorm: 44/1:trying 'word' parser for field 'method', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 44: potential hit, trying subtree 0x7f97c6070050
liblognorm: 47: enter parser, dag node 0x7f97c6070050, json
0x7f97c60700f0
liblognorm: 47/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 47: potential hit, trying subtree 0x7f97c60703c0
liblognorm: 48: enter parser, dag node 0x7f97c60703c0, json
0x7f97c60700f0
liblognorm: 48/1:trying 'char-to' parser for field 'request', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 9
liblognorm: 48: potential hit, trying subtree 0x7f97c6070530
liblognorm: 57: enter parser, dag node 0x7f97c6070530, json
0x7f97c60700f0
liblognorm: 57/1:trying 'literal' parser for field '(null)', data '
HTTP/'
liblognorm: parser lookup returns 0, pParsed 6
liblognorm: 57: potential hit, trying subtree 0x7f97c6070bd0
liblognorm: 63: enter parser, dag node 0x7f97c6070bd0, json
0x7f97c60700f0
liblognorm: 63/1:trying 'float' parser for field 'httpversion', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 63: potential hit, trying subtree 0x7f97c6070d50
liblognorm: 66: enter parser, dag node 0x7f97c6070d50, json
0x7f97c60700f0
liblognorm: 66/1:trying 'literal' parser for field '(null)', data '"'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 66: potential hit, trying subtree 0x7f97c6070f90
liblognorm: 67: enter parser, dag node 0x7f97c6070f90, json
0x7f97c60700f0
liblognorm: 67/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 67: potential hit, trying subtree 0x7f97c6071200
liblognorm: 68: enter parser, dag node 0x7f97c6071200, json
0x7f97c60700f0
liblognorm: 68/1:trying 'number' parser for field 'response', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 68: potential hit, trying subtree 0x7f97c6071350
liblognorm: 71: enter parser, dag node 0x7f97c6071350, json
0x7f97c60700f0
liblognorm: 71/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 71: potential hit, trying subtree 0x7f97c60716e0
liblognorm: 72: enter parser, dag node 0x7f97c60716e0, json
0x7f97c60700f0
liblognorm: 72/1:trying 'word' parser for field 'bytes', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 5
liblognorm: 72: potential hit, trying subtree 0x7f97c6071a80
liblognorm: 77: enter parser, dag node 0x7f97c6071a80, json
0x7f97c60700f0
liblognorm: offs 77, strLen 77, isTerm 1
liblognorm: 77 returns 0, pParsedTo 0, parsedTo 0
liblognorm: 72: subtree returns 0, parsedTo 77
liblognorm: 72: parser matches at 72
liblognorm: parsedTo 77, *pParsedTo 77
liblognorm: offs 72, strLen 77, isTerm 0
liblognorm: 72 returns 0, pParsedTo 77, parsedTo 77
liblognorm: 71: subtree returns 0, parsedTo 72
liblognorm: 71: parser matches at 71
liblognorm: parsedTo 72, *pParsedTo 77
liblognorm: offs 71, strLen 77, isTerm 0
liblognorm: 71 returns 0, pParsedTo 77, parsedTo 72
liblognorm: 68: subtree returns 0, parsedTo 71
liblognorm: 68: parser matches at 68
liblognorm: parsedTo 71, *pParsedTo 77
liblognorm: offs 68, strLen 77, isTerm 0
liblognorm: 68 returns 0, pParsedTo 77, parsedTo 71
liblognorm: 67: subtree returns 0, parsedTo 68
liblognorm: 67: parser matches at 67
liblognorm: parsedTo 68, *pParsedTo 77
liblognorm: offs 67, strLen 77, isTerm 0
liblognorm: 67 returns 0, pParsedTo 77, parsedTo 68
liblognorm: 66: subtree returns 0, parsedTo 67
liblognorm: 66: parser matches at 66
liblognorm: parsedTo 67, *pParsedTo 77
liblognorm: offs 66, strLen 77, isTerm 0
liblognorm: 66 returns 0, pParsedTo 77, parsedTo 67
liblognorm: 63: subtree returns 0, parsedTo 66
liblognorm: 63: parser matches at 63
liblognorm: parsedTo 66, *pParsedTo 77
liblognorm: offs 63, strLen 77, isTerm 0
liblognorm: 63 returns 0, pParsedTo 77, parsedTo 66
liblognorm: 57: subtree returns 0, parsedTo 63
liblognorm: 57: parser matches at 57
liblognorm: parsedTo 63, *pParsedTo 77
liblognorm: offs 57, strLen 77, isTerm 0
liblognorm: 57 returns 0, pParsedTo 77, parsedTo 63
liblognorm: 48: subtree returns 0, parsedTo 57
liblognorm: 48: parser matches at 48
liblognorm: parsedTo 57, *pParsedTo 77
liblognorm: offs 48, strLen 77, isTerm 0
liblognorm: 48 returns 0, pParsedTo 77, parsedTo 57
liblognorm: 47: subtree returns 0, parsedTo 48
liblognorm: 47: parser matches at 47
liblognorm: parsedTo 48, *pParsedTo 77
liblognorm: offs 47, strLen 77, isTerm 0
liblognorm: 47 returns 0, pParsedTo 77, parsedTo 48
liblognorm: 44: subtree returns 0, parsedTo 47
liblognorm: 44: parser matches at 44
liblognorm: parsedTo 47, *pParsedTo 77
liblognorm: offs 44, strLen 77, isTerm 0
liblognorm: 44 returns 0, pParsedTo 77, parsedTo 47
liblognorm: 41: subtree returns 0, parsedTo 44
liblognorm: 41: parser matches at 41
liblognorm: parsedTo 44, *pParsedTo 77
liblognorm: offs 41, strLen 77, isTerm 0
liblognorm: 41 returns 0, pParsedTo 77, parsedTo 44
liblognorm: 15: subtree returns 0, parsedTo 41
liblognorm: 15: parser matches at 15
liblognorm: parsedTo 41, *pParsedTo 77
liblognorm: offs 15, strLen 77, isTerm 0
liblognorm: 15 returns 0, pParsedTo 77, parsedTo 41
liblognorm: 13: subtree returns 0, parsedTo 15
liblognorm: 13: parser matches at 13
liblognorm: parsedTo 15, *pParsedTo 77
liblognorm: offs 13, strLen 77, isTerm 0
liblognorm: 13 returns 0, pParsedTo 77, parsedTo 15
liblognorm: 12: subtree returns 0, parsedTo 13
liblognorm: 12: parser matches at 12
liblognorm: parsedTo 13, *pParsedTo 77
liblognorm: offs 12, strLen 77, isTerm 0
liblognorm: 12 returns 0, pParsedTo 77, parsedTo 13
liblognorm: 11: subtree returns 0, parsedTo 12
liblognorm: 11: parser matches at 11
liblognorm: parsedTo 12, *pParsedTo 77
liblognorm: offs 11, strLen 77, isTerm 0
liblognorm: 11 returns 0, pParsedTo 77, parsedTo 12
liblognorm: 10: subtree returns 0, parsedTo 11
liblognorm: 10: parser matches at 10
liblognorm: parsedTo 11, *pParsedTo 77
liblognorm: offs 10, strLen 77, isTerm 0
liblognorm: 10 returns 0, pParsedTo 77, parsedTo 11
liblognorm: 9: subtree returns 0, parsedTo 10
liblognorm: 9: parser matches at 9
liblognorm: parsedTo 10, *pParsedTo 77
liblognorm: offs 9, strLen 77, isTerm 0
liblognorm: 9 returns 0, pParsedTo 77, parsedTo 10
liblognorm: 0: subtree returns 0, parsedTo 9
liblognorm: 0: parser matches at 0
liblognorm: parsedTo 9, *pParsedTo 77
liblognorm: offs 0, strLen 77, isTerm 0
liblognorm: 0 returns 0, pParsedTo 77, parsedTo 9
liblognorm: called CUSTOM PARSER '@apache_common', result 0, offs 0,
*pParsed 0
liblognorm: parser lookup returns 0, pParsed 77
liblognorm: 0: potential hit, trying subtree 0x7f97c6071df0
liblognorm: 77: enter parser, dag node 0x7f97c6071df0, json
0x7f97c6071590
liblognorm: 77/0:trying 'USER-DEFINED' parser for field '.', data
'UNKNOWN'
liblognorm: calling custom parser '@apache_combined'
liblognorm: 77: enter parser, dag node 0x7f97c6070de0, json
0x7f97c606e9c0
liblognorm: 77/1:trying 'literal' parser for field '(null)', data '-'
liblognorm: parser lookup returns -1000, pParsed 0
liblognorm: parsedTo 0, *pParsedTo 0
liblognorm: 77/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns -1000, pParsed 0
liblognorm: parsedTo 0, *pParsedTo 0
liblognorm: offs 77, strLen 77, isTerm 0
liblognorm: 77 returns -1000, pParsedTo 0, parsedTo 0
liblognorm: called CUSTOM PARSER '@apache_combined', result -1000,
offs 77, *pParsed 0
liblognorm: parser lookup returns -1000, pParsed 18446744073709551539
liblognorm: parsedTo 0, *pParsedTo 0
liblognorm: offs 77, strLen 77, isTerm 0
liblognorm: 77 returns -1000, pParsedTo 0, parsedTo 0
liblognorm: 0: subtree returns -1000, parsedTo 77
liblognorm: 0 nonmatch, backtracking required, parsed to=77
liblognorm: parsedTo 77, *pParsedTo 77
liblognorm: offs 0, strLen 77, isTerm 0
liblognorm: 0 returns -1000, pParsedTo 77, parsedTo 77
liblognorm: final result for normalizer: parsedTo 77, endNode (nil)
liblognorm: DONE, final return is -1000
normalized: '{ "originalmsg": "127.0.0.1 - - [17\/Mar\/2016:18:15:06
+0100] \"GET \/redacted HTTP\/1.1\" 200 59506", "unparsed-data": "" }'
{ "originalmsg": "127.0.0.1 - - [17\/Mar\/2016:18:15:06 +0100] \"GET
\/redacted HTTP\/1.1\" 200 59506", "unparsed-data": "" }
To normalize: '127.0.0.1 - - [17/Mar/2016:18:15:24 +0100] "OPTIONS /
HTTP/1.1" 403 205 "-" "-'
liblognorm: 0: enter parser, dag node 0x7f97c606d0a0, json
0x7f97c6071590
liblognorm: 0/0:trying 'USER-DEFINED' parser for field '.', data
'UNKNOWN'
liblognorm: calling custom parser '@apache_common'
liblognorm: 0: enter parser, dag node 0x7f97c606e650, json
0x7f97c60700f0
liblognorm: 0/1:trying 'ipv4' parser for field 'ip', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 9
liblognorm: 0: potential hit, trying subtree 0x7f97c606f050
liblognorm: 9: enter parser, dag node 0x7f97c606f050, json
0x7f97c60700f0
liblognorm: 9/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 9: potential hit, trying subtree 0x7f97c606f180
liblognorm: 10: enter parser, dag node 0x7f97c606f180, json
0x7f97c60700f0
liblognorm: 10/1:trying 'word' parser for field 'ident', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 10: potential hit, trying subtree 0x7f97c606f3e0
liblognorm: 11: enter parser, dag node 0x7f97c606f3e0, json
0x7f97c60700f0
liblognorm: 11/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 11: potential hit, trying subtree 0x7f97c606f610
liblognorm: 12: enter parser, dag node 0x7f97c606f610, json
0x7f97c60700f0
liblognorm: 12/1:trying 'word' parser for field 'user', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 12: potential hit, trying subtree 0x7f97c606f780
liblognorm: 13: enter parser, dag node 0x7f97c606f780, json
0x7f97c60700f0
liblognorm: 13/1:trying 'literal' parser for field '(null)', data ' ['
liblognorm: parser lookup returns 0, pParsed 2
liblognorm: 13: potential hit, trying subtree 0x7f97c606f820
liblognorm: 15: enter parser, dag node 0x7f97c606f820, json
0x7f97c60700f0
liblognorm: 15/1:trying 'char-to' parser for field 'date', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 26
liblognorm: 15: potential hit, trying subtree 0x7f97c606fc30
liblognorm: 41: enter parser, dag node 0x7f97c606fc30, json
0x7f97c60700f0
liblognorm: 41/1:trying 'literal' parser for field '(null)', data '] "'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 41: potential hit, trying subtree 0x7f97c606fdc0
liblognorm: 44: enter parser, dag node 0x7f97c606fdc0, json
0x7f97c60700f0
liblognorm: 44/1:trying 'word' parser for field 'method', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 7
liblognorm: 44: potential hit, trying subtree 0x7f97c6070050
liblognorm: 51: enter parser, dag node 0x7f97c6070050, json
0x7f97c60700f0
liblognorm: 51/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 51: potential hit, trying subtree 0x7f97c60703c0
liblognorm: 52: enter parser, dag node 0x7f97c60703c0, json
0x7f97c60700f0
liblognorm: 52/1:trying 'char-to' parser for field 'request', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 52: potential hit, trying subtree 0x7f97c6070530
liblognorm: 53: enter parser, dag node 0x7f97c6070530, json
0x7f97c60700f0
liblognorm: 53/1:trying 'literal' parser for field '(null)', data '
HTTP/'
liblognorm: parser lookup returns 0, pParsed 6
liblognorm: 53: potential hit, trying subtree 0x7f97c6070bd0
liblognorm: 59: enter parser, dag node 0x7f97c6070bd0, json
0x7f97c60700f0
liblognorm: 59/1:trying 'float' parser for field 'httpversion', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 59: potential hit, trying subtree 0x7f97c6070d50
liblognorm: 62: enter parser, dag node 0x7f97c6070d50, json
0x7f97c60700f0
liblognorm: 62/1:trying 'literal' parser for field '(null)', data '"'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 62: potential hit, trying subtree 0x7f97c6070f90
liblognorm: 63: enter parser, dag node 0x7f97c6070f90, json
0x7f97c60700f0
liblognorm: 63/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 63: potential hit, trying subtree 0x7f97c6071200
liblognorm: 64: enter parser, dag node 0x7f97c6071200, json
0x7f97c60700f0
liblognorm: 64/1:trying 'number' parser for field 'response', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 64: potential hit, trying subtree 0x7f97c6071350
liblognorm: 67: enter parser, dag node 0x7f97c6071350, json
0x7f97c60700f0
liblognorm: 67/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 67: potential hit, trying subtree 0x7f97c60716e0
liblognorm: 68: enter parser, dag node 0x7f97c60716e0, json
0x7f97c60700f0
liblognorm: 68/1:trying 'word' parser for field 'bytes', data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 68: potential hit, trying subtree 0x7f97c6071a80
liblognorm: 71: enter parser, dag node 0x7f97c6071a80, json
0x7f97c60700f0
liblognorm: offs 71, strLen 78, isTerm 1
liblognorm: 71 returns 0, pParsedTo 0, parsedTo 0
liblognorm: 68: subtree returns 0, parsedTo 71
liblognorm: 68: parser matches at 68
liblognorm: parsedTo 71, *pParsedTo 71
liblognorm: offs 68, strLen 78, isTerm 0
liblognorm: 68 returns 0, pParsedTo 71, parsedTo 71
liblognorm: 67: subtree returns 0, parsedTo 68
liblognorm: 67: parser matches at 67
liblognorm: parsedTo 68, *pParsedTo 71
liblognorm: offs 67, strLen 78, isTerm 0
liblognorm: 67 returns 0, pParsedTo 71, parsedTo 68
liblognorm: 64: subtree returns 0, parsedTo 67
liblognorm: 64: parser matches at 64
liblognorm: parsedTo 67, *pParsedTo 71
liblognorm: offs 64, strLen 78, isTerm 0
liblognorm: 64 returns 0, pParsedTo 71, parsedTo 67
liblognorm: 63: subtree returns 0, parsedTo 64
liblognorm: 63: parser matches at 63
liblognorm: parsedTo 64, *pParsedTo 71
liblognorm: offs 63, strLen 78, isTerm 0
liblognorm: 63 returns 0, pParsedTo 71, parsedTo 64
liblognorm: 62: subtree returns 0, parsedTo 63
liblognorm: 62: parser matches at 62
liblognorm: parsedTo 63, *pParsedTo 71
liblognorm: offs 62, strLen 78, isTerm 0
liblognorm: 62 returns 0, pParsedTo 71, parsedTo 63
liblognorm: 59: subtree returns 0, parsedTo 62
liblognorm: 59: parser matches at 59
liblognorm: parsedTo 62, *pParsedTo 71
liblognorm: offs 59, strLen 78, isTerm 0
liblognorm: 59 returns 0, pParsedTo 71, parsedTo 62
liblognorm: 53: subtree returns 0, parsedTo 59
liblognorm: 53: parser matches at 53
liblognorm: parsedTo 59, *pParsedTo 71
liblognorm: offs 53, strLen 78, isTerm 0
liblognorm: 53 returns 0, pParsedTo 71, parsedTo 59
liblognorm: 52: subtree returns 0, parsedTo 53
liblognorm: 52: parser matches at 52
liblognorm: parsedTo 53, *pParsedTo 71
liblognorm: offs 52, strLen 78, isTerm 0
liblognorm: 52 returns 0, pParsedTo 71, parsedTo 53
liblognorm: 51: subtree returns 0, parsedTo 52
liblognorm: 51: parser matches at 51
liblognorm: parsedTo 52, *pParsedTo 71
liblognorm: offs 51, strLen 78, isTerm 0
liblognorm: 51 returns 0, pParsedTo 71, parsedTo 52
liblognorm: 44: subtree returns 0, parsedTo 51
liblognorm: 44: parser matches at 44
liblognorm: parsedTo 51, *pParsedTo 71
liblognorm: offs 44, strLen 78, isTerm 0
liblognorm: 44 returns 0, pParsedTo 71, parsedTo 51
liblognorm: 41: subtree returns 0, parsedTo 44
liblognorm: 41: parser matches at 41
liblognorm: parsedTo 44, *pParsedTo 71
liblognorm: offs 41, strLen 78, isTerm 0
liblognorm: 41 returns 0, pParsedTo 71, parsedTo 44
liblognorm: 15: subtree returns 0, parsedTo 41
liblognorm: 15: parser matches at 15
liblognorm: parsedTo 41, *pParsedTo 71
liblognorm: offs 15, strLen 78, isTerm 0
liblognorm: 15 returns 0, pParsedTo 71, parsedTo 41
liblognorm: 13: subtree returns 0, parsedTo 15
liblognorm: 13: parser matches at 13
liblognorm: parsedTo 15, *pParsedTo 71
liblognorm: offs 13, strLen 78, isTerm 0
liblognorm: 13 returns 0, pParsedTo 71, parsedTo 15
liblognorm: 12: subtree returns 0, parsedTo 13
liblognorm: 12: parser matches at 12
liblognorm: parsedTo 13, *pParsedTo 71
liblognorm: offs 12, strLen 78, isTerm 0
liblognorm: 12 returns 0, pParsedTo 71, parsedTo 13
liblognorm: 11: subtree returns 0, parsedTo 12
liblognorm: 11: parser matches at 11
liblognorm: parsedTo 12, *pParsedTo 71
liblognorm: offs 11, strLen 78, isTerm 0
liblognorm: 11 returns 0, pParsedTo 71, parsedTo 12
liblognorm: 10: subtree returns 0, parsedTo 11
liblognorm: 10: parser matches at 10
liblognorm: parsedTo 11, *pParsedTo 71
liblognorm: offs 10, strLen 78, isTerm 0
liblognorm: 10 returns 0, pParsedTo 71, parsedTo 11
liblognorm: 9: subtree returns 0, parsedTo 10
liblognorm: 9: parser matches at 9
liblognorm: parsedTo 10, *pParsedTo 71
liblognorm: offs 9, strLen 78, isTerm 0
liblognorm: 9 returns 0, pParsedTo 71, parsedTo 10
liblognorm: 0: subtree returns 0, parsedTo 9
liblognorm: 0: parser matches at 0
liblognorm: parsedTo 9, *pParsedTo 71
liblognorm: offs 0, strLen 78, isTerm 0
liblognorm: 0 returns 0, pParsedTo 71, parsedTo 9
liblognorm: called CUSTOM PARSER '@apache_common', result 0, offs 0,
*pParsed 0
liblognorm: parser lookup returns 0, pParsed 71
liblognorm: 0: potential hit, trying subtree 0x7f97c6071df0
liblognorm: 71: enter parser, dag node 0x7f97c6071df0, json
0x7f97c6071590
liblognorm: 71/0:trying 'USER-DEFINED' parser for field '.', data
'UNKNOWN'
liblognorm: calling custom parser '@apache_combined'
liblognorm: 71: enter parser, dag node 0x7f97c6070de0, json
0x7f97c6072650
liblognorm: 71/1:trying 'literal' parser for field '(null)', data '-'
liblognorm: parser lookup returns -1000, pParsed 0
liblognorm: parsedTo 0, *pParsedTo 0
liblognorm: 71/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 71: potential hit, trying subtree 0x7f97c6070c80
liblognorm: 72: enter parser, dag node 0x7f97c6070c80, json
0x7f97c6072650
liblognorm: 72/1:trying 'quoted-string' parser for field 'referrer',
data 'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 3
liblognorm: 72: potential hit, trying subtree 0x7f97c60713e0
liblognorm: 75: enter parser, dag node 0x7f97c60713e0, json
0x7f97c6072650
liblognorm: 75/1:trying 'whitespace' parser for field '(null)', data
'UNKNOWN'
liblognorm: parser lookup returns 0, pParsed 1
liblognorm: 75: potential hit, trying subtree 0x7f97c6071770
liblognorm: 76: enter parser, dag node 0x7f97c6071770, json
0x7f97c6072650
liblognorm: 76/1:trying 'quoted-string' parser for field
'useragent', data 'UNKNOWN'
liblognorm: parser lookup returns -1000, pParsed 0
liblognorm: parsedTo 0, *pParsedTo 0
liblognorm: offs 76, strLen 78, isTerm 0
liblognorm: 76 returns -1000, pParsedTo 0, parsedTo 0
liblognorm: 75: subtree returns -1000, parsedTo 76
liblognorm: 75 nonmatch, backtracking required, parsed to=76
liblognorm: parsedTo 76, *pParsedTo 76
liblognorm: offs 75, strLen 78, isTerm 0
liblognorm: 75 returns -1000, pParsedTo 76, parsedTo 76
liblognorm: 72: subtree returns -1000, parsedTo 75
liblognorm: 72 nonmatch, backtracking required, parsed to=75
liblognorm: parsedTo 75, *pParsedTo 76
liblognorm: offs 72, strLen 78, isTerm 0
liblognorm: 72 returns -1000, pParsedTo 76, parsedTo 75
liblognorm: 71: subtree returns -1000, parsedTo 72
liblognorm: 71 nonmatch, backtracking required, parsed to=72
liblognorm: parsedTo 72, *pParsedTo 76
liblognorm: offs 71, strLen 78, isTerm 0
liblognorm: 71 returns -1000, pParsedTo 76, parsedTo 72
liblognorm: called CUSTOM PARSER '@apache_combined', result -1000,
offs 71, *pParsed 0
liblognorm: parser lookup returns -1000, pParsed 5
liblognorm: parsedTo 0, *pParsedTo 0
liblognorm: offs 71, strLen 78, isTerm 0
liblognorm: 71 returns -1000, pParsedTo 0, parsedTo 0
liblognorm: 0: subtree returns -1000, parsedTo 71
liblognorm: 0 nonmatch, backtracking required, parsed to=71
liblognorm: parsedTo 71, *pParsedTo 71
liblognorm: offs 0, strLen 78, isTerm 0
liblognorm: 0 returns -1000, pParsedTo 71, parsedTo 71
liblognorm: final result for normalizer: parsedTo 71, endNode (nil)
liblognorm: DONE, final return is -1000
normalized: '{ "originalmsg": "127.0.0.1 - - [17\/Mar\/2016:18:15:24
+0100] \"OPTIONS \/ HTTP\/1.1\" 403 205 \"-\" \"-", "unparsed-data":
" \"-\" \"-" }'
{ "originalmsg": "127.0.0.1 - - [17\/Mar\/2016:18:15:24 +0100]
\"OPTIONS \/ HTTP\/1.1\" 403 205 \"-\" \"-", "unparsed-data": "
\"-\" \"-" }
liblognorm: exitCtx 0x7f97c606d010
liblognorm: delete 0x7f97c606d0a0[1]:
liblognorm: delete 0x7f97c6071df0[1]: %.:USER-DEFINED%
liblognorm: delete 0x7f97c6071b90[1]: %.:USER-DEFINED%%.:USER-DEFINED%
liblognorm: delete 0x7f97c606e650[1]:
liblognorm: delete 0x7f97c606f050[1]: %ip:ipv4%
liblognorm: delete 0x7f97c606f180[1]: %ip:ipv4%%-:whitespace%
liblognorm: delete 0x7f97c606f3e0[1]:
%ip:ipv4%%-:whitespace%%ident:word%
liblognorm: delete 0x7f97c606f610[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%
liblognorm: delete 0x7f97c606f780[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
liblognorm: delete 0x7f97c606f820[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word% [
liblognorm: delete 0x7f97c606fc30[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%
liblognorm: delete 0x7f97c606fdc0[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "
liblognorm: delete 0x7f97c6070050[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%
liblognorm: delete 0x7f97c60703c0[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%
liblognorm: delete 0x7f97c6070530[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to%
liblognorm: delete 0x7f97c6070bd0[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to% HTTP/
liblognorm: delete 0x7f97c6070d50[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to%
HTTP/%httpversion:float%
liblognorm: delete 0x7f97c6070f90[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to%
HTTP/%httpversion:float%"
liblognorm: delete 0x7f97c6071200[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to%
HTTP/%httpversion:float%"%-:whitespace%
liblognorm: delete 0x7f97c6071350[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to%
HTTP/%httpversion:float%"%-:whitespace%%response:number%
liblognorm: delete 0x7f97c60716e0[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to%
HTTP/%httpversion:float%"%-:whitespace%%response:number%%-:whitespace%
liblognorm: delete 0x7f97c6071a80[1]:
%ip:ipv4%%-:whitespace%%ident:word%%-:whitespace%%user:word%
[%date:char-to%] "%method:word%%-:whitespace%%request:char-to%
HTTP/%httpversion:float%"%-:whitespace%%response:number%%-:whitespace%%bytes:word%
liblognorm: delete 0x7f97c6070de0[1]:
liblognorm: delete 0x7f97c6070870[1]: -
liblognorm: delete 0x7f97c6070c80[1]: %-:whitespace%
liblognorm: delete 0x7f97c60713e0[1]:
%-:whitespace%%referrer:quoted-string%
liblognorm: delete 0x7f97c6071770[1]:
%-:whitespace%%referrer:quoted-string%%-:whitespace%
liblognorm: delete 0x7f97c606fb80[1]:
%-:whitespace%%referrer:quoted-string%%-:whitespace%%useragent:quoted-string%
this is the section to watch, you should see each step along the way
be tested and parsedTo march along the line. It looks like this
doesn't work the same for user defined types, try creating a ruleset
where you have the definition for the type as a rule instead of a type.
sorry, but I don't understand what are you talking about. This are the
liblognorm rules...how could I specify those on a ruleset???
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE
THAT.