1MooseX::LogDispatch(3)User Contributed Perl DocumentationMooseX::LogDispatch(3)
2
3
4

NAME

6       MooseX::LogDispatch - A Logging Role for Moose
7

VERSION

9       This document describes MooseX::LogDispatch version 1.1000
10

SYNOPSIS

12        package MyApp;
13        use Moose;
14        with 'MooseX::LogDispatch';
15        # or
16        # with 'MooseX::LogDispatch::Levels'
17
18        # This is optional. Will log to screen if not provided
19        has log_dispatch_conf => (
20          is => 'ro',
21          lazy => 1,
22          default => sub {
23            my $self = shift;
24            My::Configurator->new( # <- you write this class!
25                file => $self->log_file,
26                debug => $self->debug,
27            );
28
29          }
30        );
31
32        # This is the same as the old FileBased config parameter to the role. If you
33        # prefer you could name the attribute 'config_filename' instead.
34        has log_dispatch_conf => (
35          is => 'ro',
36          lazy => 1,
37          default => "/path/to/my/logger.conf"
38        );
39
40        # Here's another variant, using a Log::Dispatch::Configurator-style
41        #  hashref to configure things without an explicit subclass
42        has log_dispatch_conf => (
43          is => 'ro',
44          isa => 'HashRef',
45          lazy => 1,
46          required => 1,
47          default => sub {
48            my $self = shift;
49            return $self->debug ?
50               {
51                 class     => 'Log::Dispatch::Screen',
52                 min_level => 'debug',
53                 stderr    => 1,
54                 format    => '[%p] %m at %F line %L%n',
55               }
56               : {
57                   class     => 'Log::Dispatch::Syslog',
58                   min_level => 'info',
59                   facility  => 'daemon',
60                   ident     => $self->daemon_name,
61                   format    => '[%p] %m',
62               };
63           },
64        );
65
66
67        sub foo {
68          my ($self) = @_;
69          $self->logger->debug("started foo");
70          ....
71          $self->logger->debug('ending foo');
72        }
73

DESCRIPTION

75       Log::Dispatch role for use with your Moose classes.
76

ACCESSORS

78   logger
79       This is the main Log::Dispatch::Config object that does all the work.
80       It has methods for each of the log levels, such as "debug" or "error".
81
82   log_dispatch_conf
83       This is an optional attribute you can give to your class.  If you
84       define it as a hashref value, that will be interpreted in the style of
85       the configuration hashrefs documented in Log::Dispatch::Config
86       documents where they show examples of using a PLUGGABLE CONFIGURATOR
87       for pluggable configuration.
88
89       You can also gain greater flexibility by defining your own complete
90       Log::Dispatch::Configurator subclass and having your
91       "log_dispatch_config" attribute be an instance of this class.
92
93       If this attribute has a value of a string, it will be taken to by the
94       path to a config file for Log::Dispatch::Configurator::AppConfig.
95
96       By lazy-loading this attribute ("lazy => 1"), you can have the
97       configuration determined at runtime.  This is nice if you want to
98       change your log format and/or destination at runtime based on things
99       like MooseX::Getopt / MooseX::Daemonize parameters.
100
101       If you don't provide this attribute, we'll default to sending
102       everything to the screen in a reasonable debugging format.
103
104   use_logger_singleton
105       If this attribute has a true value, and Log::Dispatch::Config has a
106       configured log instance, this will be used in preference to anything
107       set via "log_dispatch_config".
108
109       The main use for this attribute is when you want to use this module in
110       another library module - i.e. the consumer of this role is not the end
111       user. Setting this attribute to true makes it much easier for the end
112       user to configure logging.
113
114       Note: If you are using a class consuming this one as a role, and plan
115       on reinstantiating that class, its probably a good idea to set this to
116       1 to avoid errors.
117

SEE ALSO

119       MooseX::LogDispatch::Levels, Log::Dispatch::Configurator,
120       Log::Dispatch::Config, Log::Dispatch.
121

DEPRECATION NOTICE

123       The old "with Logger(...)" style has been deprecated in favour of just
124       using one of two roles and making the config much more flexible. As of
125       version 1.2000 of this module, attempting to use it will make your code
126       die.
127

BUGS AND LIMITATIONS

129       Please report any bugs or feature requests to
130       "bug-moosex-logdispatch@rt.cpan.org", or through the web interface at
131       <http://rt.cpan.org>.
132
133       Or come bother us in "#moose" on "irc.perl.org".
134

AUTHOR

136       Ash Berlin "<ash@cpan.org>" v1.2000 fixes by Mike Whitaker
137       "<penfold@cpan.org>"
138
139       Based on work by Chris Prather  "<perigrin@cpan.org>"
140
141       Thanks to Brandon Black "<blblack@gmail.com>" for showing me a much
142       nicer way to configure things.
143
145       Some development sponsored by Takkle Inc.
146
147       Copyright (c) 2007, Ash Berlin "<ash@cpan.org>". Some rights reserved.
148
149       Copyright (c) 2007, Chris Prather "<perigrin@cpan.org>". Some rights
150       reserved.
151
152       This module is free software; you can redistribute it and/or modify it
153       under the same terms as Perl itself. See perlartistic.
154
155
156
157perl v5.38.0                      2023-07-21            MooseX::LogDispatch(3)
Impressum