Revision history for Log-Contextual
- Add Log::Contextual::Easy::Default for simple LC usage (Jakob Voß)
+ - Add Log::Contextual::Easy::Package for more different simple LC usage
0.005005 2013-08-08
- Fix minimum version of Exporter::Declare
L<Dlog_...|Log::Contextual/"Dlog_$level">, and
L<Dlog...|Log::Contextual/"DlogS_$level">) are exported.
+For what C<::Default> implies, see L<Log::Contextual/-default_logger>.
+
=head1 SEE ALSO
=over 4
=item L<Log::Contextual>
+=item L<Log::Contextual::Easy::Package>
+
=back
--- /dev/null
+package Log::Contextual::Easy::Package;
+
+use base 'Log::Contextual';
+
+sub arg_package_logger {
+ if ($_[1]) {
+ return $_[1];
+ } else {
+ require Log::Contextual::WarnLogger;
+ my $package = uc(caller(3));
+ $package =~ s/::/_/g;
+ return Log::Contextual::WarnLogger->new({env_prefix => $package});
+ }
+}
+
+sub default_import { qw(:dlog :log ) }
+
+1;
+
+__END__
+
+=head1 NAME
+
+Log::Contextual::Easy::Package - Import all logging methods with WarnLogger as default package logger
+
+=head1 SYNOPSIS
+
+In your module:
+
+ package My::Module;
+ use Log::Contextual::Easy::Package;
+
+ log_debug { "your message" };
+ Dlog_trace { $_ } @vars;
+
+In your program:
+
+ use My::Module;
+
+ # enable warnings
+ $ENV{MY_MODULE_UPTO}="TRACE";
+
+ # or use a specific logger with set_logger / with_logger
+
+=head1 DESCRIPTION
+
+By default, this module enables a L<Log::Contextual::WarnLogger>
+with C<env_prefix> based on the module's name that uses
+Log::Contextual::Easy. The logging levels are set to C<trace> C<debug>,
+C<info>, C<warn>, C<error>, and C<fatal> (in this order) and all
+logging functions (L<log_...|Log::Contextual/"log_$level">,
+L<logS_...|Log::Contextual/"logS_$level">,
+L<Dlog_...|Log::Contextual/"Dlog_$level">, and
+L<Dlog...|Log::Contextual/"DlogS_$level">) are exported.
+
+For what C<::Package> implies, see L<Log::Contextual/-package_logger>.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item L<Log::Contextual>
+
+=item L<Log::Contextual::Easy::Default>
+
+=back
use Test::More;
use lib 't/lib';
-use My::Module; # makes use of Log::Contextual::Easy;
+use My::Module; # makes use of Log::Contextual::Easy::Default;
+use My::Module2; # makes use of Log::Contextual::Easy::Package;
# capture logging messages of My::Module, mapping "[...] xxx" to "...$sep"
sub logshort($$) {
{
My::Module::log();
+ My::Module2::log();
is($cap_warn, undef, 'no logging by default');
}
{
local $ENV{MY_MODULE_UPTO} = 'info';
+ local $ENV{MY_MODULE2_UPTO} = 'info';
My::Module::log();
- is($cap_warn, "info!warn!error!fatal!", 'WarnLogger enabled via ENV');
+ My::Module2::log();
+ is($cap_warn, "info!warn!error!fatal!info!warn!error!fatal!", 'WarnLogger enabled via ENV');
$cap_warn = '';
}
with_logger $with_logger => sub {
My::Module::log();
+ My::Module2::log(); # will not be overridden
};
is($cap_with, 'trace|info|fatal|', 'with_logger');
My::Module::log();
+ My::Module2::log(); # will not be overridden
is($cap_set, 'info/warn/error/', 'set_logger');
is($cap_warn, '', 'no warnings if with_logger or set_logger');
--- /dev/null
+package My::Module2;
+use Log::Contextual::Easy::Package;
+
+sub log {
+ Dlog_fatal { $_ }
+ DlogS_error { $_ }
+ logS_warn { $_[0] }
+ logS_info { $_[0] }
+ log_debug { $_[0] }
+ log_trace { $_[0] } 'xxx';
+}
+
+1;