.\" -*- 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 "DlfConverter 3pm"
.TH DlfConverter 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::DlfConverter \- Base interface of all DLF converters.
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\& use base qw/ Lire::DlfConverter /;
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
This package defines the interface that must be implemented by all
DLF Converters. All the methods defined in this package will throw a
\&\*(Aqmethod not implemented\*(Aq exception if they are called.
.SH "META INFORMATION METHODS"
.IX Header "META INFORMATION METHODS"
These methods provides information to the Lire framework about the DLF
converter.
.SS \fBname()\fP
.IX Subsection "name()"
Returns the name of the DLF converter, i.e. the service\*(Aqs (aka log
format) name.
.PP
E.g. \f(CW\*(C`combined\*(C'\fR
.SS \fBtitle()\fP
.IX Subsection "title()"
Returns a more human friendly name for the DLF Converter.
.PP
E.g. \f(CW\*(C`Combined Log Format DLF Converter\*(C'\fR
.SS \fBdescription()\fP
.IX Subsection "description()"
Returns a DocBook XML based documentation of the DLF Converter.
.PP
E.g. This DLF converter can be used to process log file in the
Combined Log Format to the www DLF schema.
.SS \fBschemas()\fP
.IX Subsection "schemas()"
Returns a list of DLF schemas for which DLF records can be written
from the data contained in the log file.
.PP
E.g. For the combined DLF converters, that would be \*(Aqwww\*(Aq.
.PP
For the \*(Aqnms\*(Aq converter that could be \f(CW\*(C`qw/daemon email/\*(C'\fR which means
that the DLF converter writes DLF records in the hypothetical \f(CW\*(C`daemon\*(C'\fR
schema (server start, stops, restarts, etc.) and the email schema.
.PP
This should only contains \*(Aqbase\*(Aq (aka superservice) schemas. No
extended or derived schema\*(Aqs name should appear in that list. (Those
are reserved for the analyzers).
.SS \fBhandle_log_lines()\fP
.IX Subsection "handle_log_lines()"
This method should returns true if the DlfConverter processes
line\-oriented log file. This is the default. If this method returns
false, only the \fBprocess_log_file()\fR method will be called, otherwise
the \fBprocess_log_line()\fR method is used for every input lines.
.SH "Implementation methods"
.IX Header "Implementation methods"
These are the methods where the DLF converter work is done. The
\&\fBinit_dlf_converter()\fR method will be called once before any processing
occurs. Afterwards, \fBprocess_log_line()\fR will be called once for every line
that was marked for log continuation and for every line contained in
the log file. The \fBfinish_conversion()\fR method will be called once all
lines are processed. Any exceptions (uncaught die) that occur during
any of the methods will abort the conversion process.
.ie n .SS "init_dlf_converter( $process, [$config] )"
.el .SS "init_dlf_converter( \f(CW$process\fP, [$config] )"
.IX Subsection "init_dlf_converter( $process, [$config] )"
This method will be called by the framework before processing the log
file. This method should be used by the converter to initialize its
state.
.PP
The \f(CW$process\fR parameter contains the Lire::DlfConverterProcess object
which is controlling the conversion process.
.PP
The \f(CW$config\fR parameter contains configuration data that was specified
in the ImportJob for that converter. To register configuration
specification for you DlfConverter, you just need to define a
configuraiton specification under the name
\&\fIconverter_name\fR_properties. This should be either a RecordSpec or
ObjectSpec.
.ie n .SS "process_log_file( $process, $fd )"
.el .SS "process_log_file( \f(CW$process\fP, \f(CW$fd\fP )"
.IX Subsection "process_log_file( $process, $fd )"
This method is called so that the converter can convert the data
contained in the \f(CW$fd\fR file handle to DLF. This method is only used when
the \fBhandle_log_lines()\fR method returned false.
.PP
\&\f(CW$process\fR contains a reference to the Lire::DlfConverterProcess object
which controls the conversion process and defines the API to write DLF
and report errors.
.ie n .SS "process_log_line( $process, $line )"
.el .SS "process_log_line( \f(CW$process\fP, \f(CW$line\fP )"
.IX Subsection "process_log_line( $process, $line )"
This method is called by the framework once for each log line present
in the log file. This method is only called if the \fBhandles_log_lines()\fR
method returnes true.
.PP
\&\f(CW$process\fR is a reference to the Lire::DlfConverterProcess object. This
object defines a method to report errors, save lines for continuation
purposes and writes DLF records.
.PP
\&\f(CW$line\fR contains the log line which should be processed with the end of
line removed.
.ie n .SS "finish_conversion( $dlf_store )"
.el .SS "finish_conversion( \f(CW$dlf_store\fP )"
.IX Subsection "finish_conversion( $dlf_store )"
This method is called once by the framework once all log lines were
processed. It can be use by the converter to write any DLF records
that could be remaining because of a stateful analysis.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBLire::DlfConverterProcess\fR\|(3pm), \fBLire::DlfStore\fR\|(3pm), \fBLire::ImportJob\fR\|(3pm),
\&\fBLire::PluginManager\fR\|(3pm)
.SH AUTHOR
.IX Header "AUTHOR"
.Vb 1
\& Francis J. Lacoste
.Ve
.SH VERSION
.IX Header "VERSION"
\&\f(CW$Id:\fR DlfConverter.pm,v 1.12 2006/07/23 13:16:28 vanbaal Exp $
.SH COPYRIGHT
.IX Header "COPYRIGHT"
Copyright (C) 2002, 2003, 2004 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.