.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "WELF 3pm" .TH WELF 3pm 2025-09-28 "Lire 2.1.1" "LogReport's Lire Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Lire::WELF \- Base implementation of a WebTrends(tm) Enhanced Log Format parser .SH SYNOPSIS .IX Header "SYNOPSIS" use Lire::WELF; .PP my \f(CW$parser\fR = new Lire::WELF; .PP my \f(CW$welf_rec\fR = \f(CW$parser\fR\->parse( \f(CW$line\fR ); .SH DESCRIPTION .IX Header "DESCRIPTION" This module defines an object able to parse WebTrends(tm) Enhanced Log Format. That log format was defined by WebTrends(tm) for its Firewall Suite. It defines an extensible format that is now used by several packet filter and/or proxy firewall. .PP The document describing that format is available from http://www.webtrends.com/partners/welfOverview.htm .PP A list of products/vendor that supports this format can be found at http://www.webtrends.com/partners/firewall.htm .PP You create a WELF parser object using the \fBnew()\fR method: .PP .Vb 1 \& my $parser = new Lire::WELF(); .Ve .PP To parse a WELF record you invoke the \fBparser()\fR method with the line containing the record as parameter: .PP .Vb 1 \& my $rec = $parser\->parse( $line ); .Ve .PP The \f(CW$rec\fR is an hash reference with the WELF field name used as keys and the value of the records as values. .PP No value are interpreted or checked in any except for the following: .IP time 4 .IX Item "time" The time field will be converted to epoch time .IP quotation 4 .IX Item "quotation" The quotation marks used when the value contains spaces are removed. .SS "WELF EXTENSIONS" .IX Subsection "WELF EXTENSIONS" The parser also supports "extensions" to the format found in the field. .IP port 4 .IX Item "port" We will interpret correctly src and dst fields that have the port embededded in them: .Sp .Vb 1 \& src=192.168.1.1:1037 .Ve .IP interface 4 .IX Item "interface" A possible :IFNAME will also be interpreted as the interface name: .Sp .Vb 1 \& dst=192.168.100.10:23:WAN .Ve .IP timezone 4 .IX Item "timezone" The time field may contains a time zone identifier: .Sp .Vb 1 \& time="2001\-12\-02 12:34:12 UTC" .Ve .SS "Derived Fields" .IX Subsection "Derived Fields" The parser will generate a few \*(Aqderived\*(Aq to complete the format. .IP src_port 4 .IX Item "src_port" Will contain the src port portion of the dst field when SonicWall extensions are used. .IP dst_port 4 .IX Item "dst_port" Will contain the interface portion of the dst field when SonicWall extensions are used. .IP src_if 4 .IX Item "src_if" Will contain the interface portion of the src field when SonicWall extensions are used. .IP dst_if 4 .IX Item "dst_if" Will contain the interface portion of the dst field when SonicWall extensions are used. .SH AUTHOR .IX Header "AUTHOR" .Vb 1 \& Francis J. Lacoste .Ve .SH VERSION .IX Header "VERSION" \&\f(CW$Id:\fR WELF.pm,v 1.11 2006/07/23 13:16:30 vanbaal Exp $ .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright (C) 2001 Stichting LogReport Foundation LogReport@LogReport.org .PP This file is part of Lire. .PP Lire is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. .PP You should have received a copy of the GNU General Public License along with this program (see COPYING); if not, check with http://www.gnu.org/copyleft/gpl.html.