<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div><br>The thing to remember is that liblognorm is creating a parse tree, not a set of regex rules to match.<br><br>So it's not evaluating the rules one at a time as each line arrives.<br><br>Instead it's evaluating them all at the same time.<br><br>It's essentially creating a mini program where it looks at the first character of the input and says 'this character means that it could match this set of rules, but not this other set', then it looks at the next character and says 'of the rules that were possible after the last step, this set is still possible' and repeats this until there is only one rule left in the 'possible' set. Then it goes through that rule to assign values to variables.<br><br>This process makes it so that it takes very close to the same amount of time to evaluate a large number of rules as a small number of rules.<br></div></blockquote><br></div><div>David, </div><div><br></div><div>Thanks for the response.   Sagan has been using liblognorm for a while,  but you've summed up how it works very well.    Actually, </div><div>it even helped me!   I think I'll archive your response for future Sagan/liblognorm questions that come up  on our mailing list.   Keep it up,  awesome work....</div><div><br></div><br><div apple-content-edited="true">
<span><img height="61" width="182" id="8ffad363-2b23-4161-8dc5-5bf1f8dc8a2b" apple-width="yes" apple-height="yes" src="cid:90535ED9-584C-4246-BF96-4F5A5FC9A7FE@vistech.net"></span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><br><br>Champ Clark III<br>(office) 904.253.7856<br></span><div>(mobile) 850.443.2440 </div><div><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">(SOC) 800.538.9357 ext 101</span></div><div><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><a href="mailto:cclark@quadrantsec.com">cclark@quadrantsec.com</a><br>www.quadrantsec.com</span><div><div>
</div>
</div></div></span></div><br></body></html>