Log::Agent 0.3.02 Copyright (c) 1999-2000 Raphael Manfredi Copyright (c) 2002 Mark Rogaski ------------------------------------------------------------------------ This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License, a copy of which can be found with perl. 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 Artistic License for more details. ------------------------------------------------------------------------ *** This is alpha software -- use at your own risks *** Name DSLIP Description Info ----------- ----- -------------------------------------------- ----- Log::Agent adpOa A general logging framework MROGASKI SYNOPSIS # # In reusable modules, log via logxxx() routines # use Log::Agent; logsay "creating file"; open(FILE, ">>file") || logdie "can't append to file: $!"; .... close FILE; logwarn "MANIFEST not found" unless -e 'MANIFEST'; # # In the application, choose a driver for logxxx() messages # # Default behaviour: no need to do anything. logxxx() messages will # be mapped to print, warn or die, as appropriate. # # Or customize a driver, as we do here. # use Log::Agent; require Log::Agent::Driver::File; (my $me = $0) =~ s|.*/(.*)|$1|; my $driver = Log::Agent::Driver::File->make( -prefix => $me, -showpid => 1, -channels => { 'error' => '/tmp/output.err', 'output' => 'log.out', 'debug' => '../appli.debug', }, ); logconfig(-driver => $driver, -level => 'notice'); # # Alternative: redirect to syslog # use Log::Agent; require Log::Agent::Driver::Syslog; (my $me = $0) =~ s|.*/(.*)|$1|; my $driver = Log::Agent::Driver::Syslog->make( -prefix => $me, -showpid => 1, -facility => "user", -logopt => "ndelay", ); logconfig(-driver => $driver, -level => 'debug'); DESCRIPTION Log::Agent is a general logging framework aimed at reusable modules. Instead of having modules insist on using their onw logging reporting (by hardwiring calls to warn() or syslog()) which can conflict with the final application's choice, one may use logwarn() for instance to emit a warning. It is then up to the application to decide, once and for all, which logging scheme should be used, by selecting a proper driver. If it does not select one, the Default driver will be used, which is a simple mapping of the logwarn() routine to warn(), for instance. Or the application may choose to use the Silent driver to make all the logwarn() calls be ignored, the Syslog driver to redirect logwarn() to Sys::Syslog, or the File driver to redirect logwarn() to the 'error' channel defined (by default STDERR), whith proper time stamping. The available calls are: logdie logerr logwarn logsay logtrc 'priority', "message" logdbg 'priority', "message" Please read the Log::Agent(3) manpage and the related pages for more information. -- Mark Rogaski