f5a71fa9729bb6241784ba1a639e5c45717ad690
[p5sagit/Log-Contextual.git] / lib / Log / Contextual / Easy / Package.pm
1 package Log::Contextual::Easy::Package;
2
3 # ABSTRACT: Import all logging methods with WarnLogger as default package logger
4
5 use strict;
6 use warnings;
7
8 use base 'Log::Contextual';
9
10 sub arg_package_logger {
11    if ($_[1]) {
12       return $_[1];
13    } else {
14       require Log::Contextual::WarnLogger;
15       my $package = uc(caller(3));
16       $package =~ s/::/_/g;
17       return Log::Contextual::WarnLogger->new({env_prefix => $package});
18    }
19 }
20
21 sub default_import { qw(:dlog :log ) }
22
23 1;
24
25 __END__
26
27 =head1 SYNOPSIS
28
29 In your module:
30
31  package My::Module;
32  use Log::Contextual::Easy::Package;
33
34  log_debug { "your message" };
35  Dlog_trace { $_ } @vars;
36
37 In your program:
38
39  use My::Module;
40
41  # enable warnings
42  $ENV{MY_MODULE_UPTO}="TRACE";
43
44  # or use a specific logger with set_logger / with_logger
45
46 =head1 DESCRIPTION
47
48 By default, this module enables a L<Log::Contextual::WarnLogger>
49 with C<env_prefix> based on the module's name that uses
50 Log::Contextual::Easy. The logging levels are set to C<trace> C<debug>,
51 C<info>, C<warn>, C<error>, and C<fatal> (in this order) and all
52 logging functions (L<log_...|Log::Contextual/"log_$level">,
53 L<logS_...|Log::Contextual/"logS_$level">,
54 L<Dlog_...|Log::Contextual/"Dlog_$level">, and
55 L<Dlog...|Log::Contextual/"DlogS_$level">) are exported.
56
57 For what C<::Package> implies, see L<Log::Contextual/-package_logger>.
58
59 =head1 SEE ALSO
60
61 =over 4
62
63 =item L<Log::Contextual::Easy::Default>
64
65 =back