CTKlib

 view release on metacpan or  search on metacpan

lib/CTK/Log.pm  view on Meta::CPAN

=head2 log_fatal

    $logger->log_fatal( <FORMAT>, <VALUE>, ... );
    $logger->log_fatal( "No free memory" );

Level 8: fatal

=head2 log_except, log_exception

    $logger->log_except( <FORMAT>, <VALUE>, ... );
    $logger->log_except( "Segmentation violation" );

Level 9: exception

=head1 HISTORY

See C<Changes> file

=head1 DEPENDENCIES

L<Sys::Syslog>, L<IO::File>

=head1 TO DO

See C<TODO> file

=head1 BUGS

* none noted

=head1 SEE ALSO

L<Sys::Syslog>, L<IO::File>

=head1 AUTHOR

Serż Minus (Sergey Lepenkov) L<https://www.serzik.com> E<lt>abalama@cpan.orgE<gt>

=head1 COPYRIGHT

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

=head1 LICENSE

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

See C<LICENSE> file and L<https://dev.perl.org/licenses/>

=cut


use vars qw/$VERSION %EXPORT_TAGS @EXPORT_OK/;
$VERSION = '2.64';

use base qw/Exporter/;

use Carp;
use IO::File;
use Sys::Syslog ();
use Try::Tiny;
use Cwd qw/getcwd/;
use File::Spec ();

@EXPORT_OK = qw(
        LOG_DEBUG LOG_INFO LOG_NOTICE LOG_NOTE LOG_WARNING LOG_WARN LOG_ERR
        LOG_ERROR LOG_CRIT LOG_ALERT LOG_EMERG LOG_EMERGENCY LOG_FATAL
        LOG_EXCEPT LOG_EXCEPTION
    );

%EXPORT_TAGS = (
        constants => [@EXPORT_OK],
    );

use constant {
    LOGOPT          => 'ndelay,pid', # For Sys::Syslog
    MSWIN           => $^O =~ /mswin/i ? 1 : 0,
    SEPARATOR       => ' ',
    LOGLEVELSA      => [qw/debug info notice warning error crit alert emerg fatal except/],
    LOGLEVELS       => {
        'debug'     => 0,
        'info'      => 1,
        'notice'    => 2, 'note' => -2,
        'warning'   => 3, 'warn' => -3,
        'error'     => 4, 'err' => -4,
        'crit'      => 5, 'critical' => -5,
        'alert'     => 6,
        'emerg'     => 7, 'emergency' => -7,
        'fatal'     => 8,
        'except'    => 9, 'exception' => -9,
    },
    LOG_DEBUG       => 0,
    LOG_INFO        => 1,
    LOG_NOTICE      => 2, LOG_NOTE => 2,
    LOG_WARNING     => 3, LOG_WARN => 3,
    LOG_ERR         => 4, LOG_ERROR => 4,
    LOG_CRIT        => 5,
    LOG_ALERT       => 6,
    LOG_EMERG       => 7, LOG_EMERGENCY => 7,
    LOG_FATAL       => 8,
    LOG_EXCEPT      => 9, LOG_EXCEPTION => 9,
};

my %SYSLOG_LEVEL_MAP = (
  # My LEVEL        , SysLog LEVEL
    LOG_DEBUG       , LOG_EMERG,
    LOG_INFO        , LOG_ALERT,
    LOG_NOTICE      , LOG_CRIT,
    LOG_WARNING     , LOG_ERR,
    LOG_ERR         , LOG_WARNING,
    LOG_CRIT        , LOG_NOTICE,
    LOG_ALERT       , LOG_INFO,
    LOG_EMERG       , LOG_DEBUG,
    LOG_FATAL       , LOG_DEBUG,
    LOG_EXCEPT      , LOG_DEBUG,
);

sub new {
    my $class = shift;
    my %args = @_;
    my $level = _getLevel($args{level} // LOG_DEBUG);



( run in 1.736 second using v1.01-cache-2.11-cpan-39bf76dae61 )