The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Acme::Crux::Plugin::Log - The Acme::Crux plugin for logging in your application

SYNOPSIS

    # In startup
    $app->plugin('Log');
    $app->plugin('Log', undef, { ... options ... });

    # In application
    $app->log->trace('Whatever');
    $app->log->debug('You screwed up, but that is ok');
    $app->log->info('You are bad, but you prolly know already');
    $app->log->notice('Normal, but significant, condition...');
    $app->log->warn('Dont do that Dave...');
    $app->log->error('You really screwed up this time');
    $app->log->fatal('Its over...');
    $app->log->crit('Its over...');
    $app->log->alert('Action must be taken immediately');
    $app->log->emerg('System is unusable');

DESCRIPTION

The Acme::Crux plugin for logging in your application

OPTIONS

This plugin supports the following options

autoclean

    $app->plugin(Log => undef, {autoclean => 1});

This option enables cleaning (closing handler or syslog) on DESTROY

Default: logautoclean command line option or logautoclean application argument or LogAutoclean configuration value or 0 otherwise

color

    $app->plugin(Log => undef, {color => 1});

This option enables colorize log messages with the available levels using Term::ANSIColor

Default: logcolorize command line option or logcolorize application argument or LogColorize configuration value or 0 otherwise

facility

    $app->plugin(Log => undef, {facility => 'user'});

This option sets facility for logging

Available standard facilities: auth, authpriv, cron, daemon, ftp, kern, local0, local1, local2, local3, local4, local5, local6, local7, lpr, mail, news, syslog, user and uucp

Default: logfacility command line option or logfacility application argument or LogFacility configuration value or user otherwise

file

    $app->plugin(Log => undef, {file => '/var/log/myapp.log'});

Log file path used by "handle"

Default: logfile command line option or LogFile configuration value or logfile application argument or /var/log/$moniker/$moniker.log otherwise

format

    $app->plugin(Log => undef, {format => sub {...}});

A callback function for formatting log messages. See "format" in Acrux::Log

Default: logformat application argument or undef otherwise

handle

    $app->plugin(Log => undef, {
        handle => IO::Handle->new_from_fd(fileno(STDOUT), "w")
    });

Log filehandle, defaults to opening "file" or uses syslog if file not specified

Default: loghandle application argument or undef otherwise

ident

    $app->plugin(Log => undef, {ident => 'myapp'});

The ident is prepended to every syslog message

Default: logident command line option or logident application argument or LogIdent configuration value or script name basename($0) otherwise

level

    $app->plugin(Log => undef, {level => 'debug'});

This option sets log level

Predefined log levels: fatal, error, warn, info, debug, and trace (in descending priority). The syslog supports followed additional log levels: emerg, alert, crit' and notice (in descending priority). But we recommend not using them to maintain compatibility.

See also "level" in Acrux::Log

Default: loglevel command line option or loglevel application argument or LogLevel configuration value or debug otherwise

logger

    $app->plugin(Log => undef, {logger => Mojo::Log->new()});

This option sets predefined logger, eg. Mojo::Log

Default: logger application argument or undef otherwise

logopt

    $app->plugin(Log => undef, {logopt => 'ndelay,pid'});

This option contains zero or more of the options detailed in "openlog" in Sys::Syslog

Default: logopt command line option or logopt application argument or LogOpt configuration value or 'ndelay,pid' otherwise

prefix

    $app->plugin(Log => undef, {prefix => '>>>'});

The prefix is prepended to every handled log message

Default: logprefix command line option or logprefix application argument or LogPrefix configuration value or null otherwise

provider

    $app->plugin(Log => undef, {provider => 'syslog'});

This option select the provider of logging. Avalabled providers: logger, handler, file and syslog.

Default: logprovider command line option or logprovider application argument or LogProvider configuration value or file otherwise

short

    $app->plugin(Log => undef, {short => 1});

Generate short log messages without a timestamp but with log level prefix

Default: logshort command line option or logshort application argument or LogShort configuration value or 0 otherwise

METHODS

This class inherits all methods from Acme::Crux::Plugin and implements the following new ones

register

    $plugin->register($app, {file => '/var/log/app.log'});

Register plugin in Acme::Crux application

HELPERS

All helpers of this plugin are allows get access to logger object. See Acrux::Log for details

log

Returns Acrux::Log object

TO DO

See TODO file

SEE ALSO

Acme::Crux::Plugin, Acrux::Log

AUTHOR

Serż Minus (Sergey Lepenkov) https://www.serzik.com <abalama@cpan.org>

COPYRIGHT

Copyright (C) 1998-2024 D&D Corporation. All Rights Reserved

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See LICENSE file and https://dev.perl.org/licenses/