#!/usr/bin/perl
# Created on: 2008-10-21 07:41:57
# Create by: ivan
# $Id$
# $Revision$, $HeadURL$, $Date$
# $Revision$, $Source$, $Date$
use strict;
use warnings;
use version;
use Getopt::Long;
use Pod::Usage;
use Data::Dumper qw/Dumper/;
use English qw/ -no_match_vars /;
use FindBin qw/$Bin/;
use Log::Deep::Read;
our $VERSION = version->new('0.3.3');
my ($name) = $PROGRAM_NAME =~ m{^.*/(.*?)$}mxs;
my %option = (
verbose => 0,
man => 0,
help => 0,
VERSION => 0,
);
if ( !@ARGV ) {
pod2usage( -verbose => 1 );
}
main();
exit 0;
sub main {
Getopt::Long::Configure('bundling');
GetOptions(
\%option,
'follow|f',
'number|n=i',
'session-number|N=i',
'session|s=s',
'time|t=s',
'filter|l=s%',
'display|d=s%',
'breaks|b',
'verbose|v+',
'man',
'help',
'VERSION!',
) or pod2usage(2);
if ( $option{'VERSION'} ) {
print "$name Version = $VERSION\n";
exit 1;
}
elsif ( $option{'man'} ) {
pod2usage( -verbose => 2 );
}
elsif ( $option{'help'} ) {
pod2usage( -verbose => 1 );
}
# Create the log reader object
my $log = Log::Deep::Read->new(%option);
$log->read_files(@ARGV);
return;
}
__DATA__
=head1 NAME
deep - Prettily displays the data from a log file generated by Log::Deep
=head1 VERSION
This documentation refers to deep version 0.3.3.
=head1 SYNOPSIS
deep [option]
OPTIONS:
-f --follow Keep monitoring the file once end is reached
-n --number int
Specifies the number of log lines to display from the end of
the file.
-N --session-number int
Specifies the number of sessions from the end of the log file
to start displaying.
-s --session session_id
-t --time ???
-l --filter ???
Sets the filter for the log messages that are to be displayed
-d --display item=[ 1 | 0 | see below ]
Toggles the fields to display. This can be specified many
times to fully describe what to display.
Fields currently include:
data : The data supplied when the message was written
stack: The stack trace where the log was called
vars : The stored variables with the log object. A value
of 1 shows all vars other wise individual vars are
turned on by comma seperating their names.
-b --breaks Display blank lines to indicate gaps in time
-v --verbose Show more detailed option
--version Prints the version information
--help Prints this help information
--man Prints the full documentation for deep
=head1 DESCRIPTION
=head1 SUBROUTINES/METHODS
=head1 DIAGNOSTICS
=head1 CONFIGURATION AND ENVIRONMENT
=head1 DEPENDENCIES
=head1 INCOMPATIBILITIES
There are no known bugs in this module.
Please report problems to Ivan Wills (ivan.wills@gmail.com).
Patches are welcome.
=head1 AUTHOR
Ivan Wills - (ivan.wills@gmail.com)
=head1 LICENSE AND COPYRIGHT
Copyright (c) 2009 Ivan Wills (14 Mullion Close, Hornsby Heights, NSW 2077).
All rights reserved.
This module is free software; you can redistribute it and/or modify it under
the same terms as Perl itself. See L<perlartistic>. 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.
=cut