NAME¶
DPKG::Log - Parse the dpkg log
VERSION¶
version 1.20
SYNOPSIS¶
use DPKG::Log;
my $dpkg_log = DPKG::Log->new('filename' => 'dpkg.log', 'parse' => 1);
DESCRIPTION¶
This module is used to parse a logfile and store each line as a DPKG::Log::Entry
object.
METHODS¶
- $dpkg_log = DPKG::Log->new()
- $dpkg_log = DPKG::Log->new('filename' =>
'dpkg.log')
- $dpkg_log = DPKG::Log->new('filename' => 'dpkg.log',
'parse' => 1 )
- Returns a new DPKG::Log object. If parse is set to a true
value the logfile specified by filename is parsed at the end of the object
initialisation. Otherwise the parse routine has to be called. Filename
parameter can be omitted, it defaults to /var/log/dpkg.log.
Optionally its possible to specify from or to arguments as
timestamps in the standard dpkg.log format or as DateTime objects. This
will limit the entries which will be stored in the object to entries in
the given timerange. Note that, if this is not what you want, you may
ommit these attributes and can use
filter_by_time() instead.
By default the module will assume that those timestamps are in the local
timezone as determined by DateTime::TimeZone. This can be overridden by
giving the argument time_zone which takes a timezone string (e.g.
'Europe/Berlin') or a DateTime::TimeZone object. Additionally its possible
to override the timestamp_pattern by specifying timestamp_format.
This has to be a valid pattern for DateTime::Format::Strptime.
- $dpkg_log->filename
- $dpkg_log->filename('newfilename.log')
- Get or set the filename of the dpkg logfile.
- $dpkg_log->parse
- $dpkg_log->parse('time_zone' => 'Europe/Berlin')
- $dpkg_log->parse('time_zone' => $dt_tz )
- Call the parser.
The time_zone parameter is optional and specifies in which time zone
the dpkg log timestamps are. If its omitted it will use the default local
time zone. Its possible to specify either a DateTime::TimeZone object or a
string.
- @entries = $dpkg_log->entries;
- @entries = $dpkg_log->entries('from' =>
'2010-01-01.10:00:00', to => '2010-01-02 24:00:00')
- Return all entries or all entries in a given timerange.
from and to are optional arguments, specifying a date before
(from) and after (to) which entries aren't returned. If only to is
specified all entries from the beginning of the log are read. If only
from is specified all entries till the end of the log are
read.
- $entry = $dpkg_log->next_entry;
- Return the next entry.
- @entries = $dpkg_log->filter_by_time(from => ts, to
=> ts)
- @entries = $dpkg_log->filter_by_time(from => ts)
- @entries = $dpkg_log->filter_by_time(to => ts)
- @entries = $dpkg_log->filter_by_time(from => ts, to
=> ts, entry_ref => $entry_ref)
- Filter entries by given from - to range. See
the explanations for the new sub for the arguments.
If entry_ref is given and an array reference its used instead of
$self->{entries} as input source for the entries which are to be
filtered.
- ($from, $to) =
$dpkg_log->get_datetime_info()
- Returns the from and to timestamps of the logfile or (if
from/to values are set) the values set during object initialisation.
SEE ALSO¶
DPKG::Log::Entry, DateTime, DateTime::TimeZone
AUTHOR¶
Patrick Schoenfeld <schoenfeld@debian.org>.
COPYRIGHT AND LICENSE¶
Copyright (C) 2011 Patrick Schoenfeld <schoenfeld@debian.org>
This library is free software. You can redistribute it and/or modify it under
the same terms as perl itself.