/usr/share/doc/liblog-dispatch-configurator-any-perl/examples/ptee is in liblog-dispatch-configurator-any-perl 1.122640-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | #!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
use Log::Dispatch::Config;
use Log::Dispatch::Configurator::Any;
our $VERSION = '1.0003';
$VERSION = eval $VERSION; # numify for warning-free dev releases
# $Id$
my $defaults = {
dispatchers => ['screen'],
screen => {
class => 'Log::Dispatch::Screen',
min_level => 'debug',
max_level => 'emergency',
stderr => 0,
},
};
my $config_file = '/etc/ptee.yml';
my $config = $ENV{PTEE_CONFIG} || $ARGV[0] ||
( -e $config_file ? $config_file : $defaults);
Log::Dispatch::Config->configure_and_watch(
Log::Dispatch::Configurator::Any->new($config) );
my $dispatcher = Log::Dispatch::Config->instance;
$| = 1;
while (<>) {
$dispatcher->notice($_);
}
exit 0;
__END__
=head1 NAME
ptee - multicast your logs
=head1 VERSION
This document refers to version 1.0003 of ptee
=head1 PURPOSE
Use this program somewhat like the unix tee(1) command, to send text input to
multiple destinations, for example a log file, Syslog, and so on.
=head1 DESCRIPTION
The unix tee(1) command accepts text on standard input, and emits that same
text back out on standard output whilst also appending it to a log file.
This program is similar, but more flexible, in that you can specify other
destinations, and have as many as you like. By default it operates in
pass-through mode; text received is simply emitted straight back out on
standard output.
=head1 USAGE
Configuration is provided in the format used by the Perl module
L<Log::Dispatch::Config>. This is a wrapper around the excellent
L<Log::Dispatch> perl module, which is the tool that provides all your output
destinations.
The best thing to do is read the manual page for these two modules - don't
worry they are not complicated. Once you have done that, you can write your
own configuration file.
You can use many different formats of configuration file. Please read the
L<Config::Any> Perl module manual for more details. Here is a simple example
which will emit logs to standard output and a file, much like the unix utility
tee(1):
dispatchers : [file, screen]
file:
class : 'Log::Dispatch::File'
min_level : debug
filename : '/path/to/log'
mode : append
format : '[%d] [%p] %m at %F line %L%n'
screen:
class : 'Log::Dispatch::Screen'
min_level : info
stderr : 1
format : '%m'
The above file is in YAML format, a good choice, and so if you save this as
C</etc/ptee.yml> it will be loaded and used.
Alternatively, you can specify the file name in the C<PTEE_CONFIG> environment
variable, or as the first command line parameter to C<ptee> itself. This gives
you the ability to use a different file format, but please read the manual
page for the L<Log::Dispatch::Configurator::Any> Perl module in that case to
avoid a couple of minor pitfalls.
=head1 AUTHOR
Oliver Gorwits C<< <oliver.gorwits@oucs.ox.ac.uk> >>
=head1 COPYRIGHT & LICENSE
Copyright (c) The University of Oxford 2008.
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
|