1 package Log::Contextual;
9 BEGIN { @ISA = qw(Exporter) }
11 @EXPORT = qw(set_logger log_debug with_logger);
21 $logger = do { my $l = $logger; sub { $l } }
22 if ref $logger ne 'CODE';
23 local $Get_Logger = $logger;
28 my $log = $Get_Logger->();
29 $log->trace($_[0]->())
34 my $log = $Get_Logger->();
35 $log->debug($_[0]->())
40 my $log = $Get_Logger->();
46 my $log = $Get_Logger->();
52 my $log = $Get_Logger->();
53 $log->error($_[0]->())
58 my $log = $Get_Logger->();
59 $log->fatal($_[0]->())
69 Log::Contextual - Super simple logging interface
75 my $logger = WarnLogger->new;
76 my $logger2 = FileLogger->new;
78 set_logger { $logger };
80 log_debug { "program started" };
84 log_trace { "foo entered" };
86 log_trace { "foo left" };
92 This module is for simplistic but very extensible logging.
98 my $logger = WarnLogger->new;
99 set_logger { $logger };
101 Arguments: CodeRef $returning_logger
105 my $logger = WarnLogger->new;
106 with_logger { $logger } sub {
108 log_fatal { 'Non Logical Universe Detected' };
110 log_info { 'All is good' };
114 Arguments: CodeRef $to_execute, CodeRef $returning_logger
118 log_trace { 'entered method foo with args ' join q{,}, @args };
120 Arguments: CodeRef $returning_message
124 log_debug { 'entered method foo' };
126 Arguments: CodeRef $returning_message
130 log_info { 'started process foo' };
132 Arguments: CodeRef $returning_message
136 log_warn { 'possible misconfiguration at line 10' };
138 Arguments: CodeRef $returning_message
142 log_error { 'non-numeric user input!' };
144 Arguments: CodeRef $returning_message
148 log_fatal { '1 is never equal to 0!' };
150 Arguments: CodeRef $returning_message
154 This package also provides:
156 L<Log::Contextual::Sugar> - provides Dlog_$level and DlogS_$level convenience
161 frew - Arthur Axel "fREW" Schmidt <frioux@gmail.com>
165 mst - Matt S. Trout <mst@shadowcat.co.uk>
169 Copyright (c) 2010 the Log::Contextual L</AUTHOR> and L</DESIGNER> as listed
174 This library is free software and may be distributed under the same terms as
179 .:13:03:05:. <@mst> amazing how simple this stuff is once you get the paradigm
180 .:13:03:13:. <@mst> also consider
181 .:13:04:17:. <@mst> package Catalyst::Plugin::LogContextual; use Moose::Role; around
182 handle_request => sub { my ($orig, $self) = (shift, shift); my @args = @_;
183 with_logger { $self->log } sub { $self->$orig(@args) } };