1Log::Contextual::WarnLoUgsgeerr(C3o)ntributed Perl DocumLeongt:a:tCioonntextual::WarnLogger(3)
2
3
4

NAME

6       Log::Contextual::WarnLogger - logger for libraries using
7       Log::Contextual
8

VERSION

10       version 0.008001
11

SYNOPSIS

13        package My::Package;
14        use Log::Contextual::WarnLogger;
15        use Log::Contextual qw( :log ),
16          -default_logger => Log::Contextual::WarnLogger->new({
17             env_prefix => 'MY_PACKAGE',
18             levels => [ qw(debug info notice warning error critical alert emergency) ],
19          });
20
21        # warns '[info] program started' if $ENV{MY_PACKAGE_TRACE} is set
22        log_info { 'program started' }; # no-op because info is not in levels
23        sub foo {
24          # warns '[debug] entered foo' if $ENV{MY_PACKAGE_DEBUG} is set
25          log_debug { 'entered foo' };
26          ...
27        }
28

DESCRIPTION

30       This module is a simple logger made for libraries using
31       Log::Contextual.  We recommend the use of this logger as your default
32       logger as it is simple and useful for most users, yet users can use
33       "set_logger" in Log::Contextual to override your choice of logger in
34       their own code thanks to the way Log::Contextual works.
35

METHODS

37   new
38       Arguments: "Dict[ env_prefix => Str, levels => List ] $conf"
39
40        my $l = Log::Contextual::WarnLogger->new({ env_prefix => 'BAR' });
41
42       or:
43
44        my $l = Log::Contextual::WarnLogger->new({
45          env_prefix => 'BAR',
46          levels => [ 'level1', 'level2' ],
47        });
48
49       Creates a new logger object where "env_prefix" defines what the prefix
50       is for the environment variables that will be checked for the log
51       levels.
52
53       The log levels may be customized, but if not defined, these are used:
54
55       trace
56       debug
57       info
58       warn
59       error
60       fatal
61
62       For example, if "env_prefix" is set to "FREWS_PACKAGE" the following
63       environment variables will be used:
64
65        FREWS_PACKAGE_UPTO
66
67        FREWS_PACKAGE_TRACE
68        FREWS_PACKAGE_DEBUG
69        FREWS_PACKAGE_INFO
70        FREWS_PACKAGE_WARN
71        FREWS_PACKAGE_ERROR
72        FREWS_PACKAGE_FATAL
73
74       Note that "UPTO" is a convenience variable.  If you set
75       "FOO_UPTO=TRACE" it will enable all log levels.  Similarly, if you set
76       it to "FATAL" only fatal will be enabled.
77
78   $level
79       Arguments: @anything
80
81       All of the following six methods work the same.  The basic pattern is:
82
83        sub $level {
84          my $self = shift;
85
86          warn "[$level] " . join qq{\n}, @_;
87             if $self->is_$level;
88        }
89
90       trace
91
92        $l->trace( 'entered method foo with args ' join q{,}, @args );
93
94       debug
95
96        $l->debug( 'entered method foo' );
97
98       info
99
100        $l->info( 'started process foo' );
101
102       warn
103
104        $l->warn( 'possible misconfiguration at line 10' );
105
106       error
107
108        $l->error( 'non-numeric user input!' );
109
110       fatal
111
112        $l->fatal( '1 is never equal to 0!' );
113
114       If different levels are specified, appropriate functions named for your
115       custom levels work as you expect.
116
117       Note: "fatal" does not call "die" for you, see "EXCEPTIONS AND ERROR
118       HANDLING" in Log::Contextual
119
120   is_$level
121       All of the following six functions just return true if their respective
122       environment variable is enabled.
123
124       is_trace
125
126        say 'tracing' if $l->is_trace;
127
128       is_debug
129
130        say 'debuging' if $l->is_debug;
131
132       is_info
133
134        say q{info'ing} if $l->is_info;
135
136       is_warn
137
138        say 'warning' if $l->is_warn;
139
140       is_error
141
142        say 'erroring' if $l->is_error;
143
144       is_fatal
145
146        say q{fatal'ing} if $l->is_fatal;
147
148       If different levels are specified, appropriate is_$level functions work
149       as you would expect.
150

AUTHOR

152       Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
153
155       This software is copyright (c) 2018 by Arthur Axel "fREW" Schmidt.
156
157       This is free software; you can redistribute it and/or modify it under
158       the same terms as the Perl 5 programming language system itself.
159
160
161
162perl v5.38.0                      2023-07-20    Log::Contextual::WarnLogger(3)
Impressum