Use Log::Any instead of Mojo::Log
Log::Any can catch runtime error in modules - cluck, carp, die, etc. Mojo::Log silently ignore that type of error and do not log them, which is pretty fucky behaviour.
This commit is contained in:
@@ -29,7 +29,9 @@ no Cwd;
|
|||||||
use Cwd::utf8 qw (chdir abs_path);
|
use Cwd::utf8 qw (chdir abs_path);
|
||||||
use File::Basename qw (basename dirname);
|
use File::Basename qw (basename dirname);
|
||||||
use File::Path qw (make_path);
|
use File::Path qw (make_path);
|
||||||
use Mojo::Log;
|
use Log::Any qw ($log);
|
||||||
|
use Log::Any::Adapter;
|
||||||
|
use Log::Any::For::Std;
|
||||||
use POSIX qw (setgid setuid setsid);
|
use POSIX qw (setgid setuid setsid);
|
||||||
use Conf qw (LoadConf);
|
use Conf qw (LoadConf);
|
||||||
use Misc qw (RunMisc);
|
use Misc qw (RunMisc);
|
||||||
@@ -45,7 +47,6 @@ my $piddir = '/var/run/' . basename (abs_path ($PROGRAM_NAME));
|
|||||||
my $CONF = LoadConf ();
|
my $CONF = LoadConf ();
|
||||||
my $loglevel = $CONF->{'loglevel'} // 'info';
|
my $loglevel = $CONF->{'loglevel'} // 'info';
|
||||||
my $logfile;
|
my $logfile;
|
||||||
my $log;
|
|
||||||
|
|
||||||
if (defined $CONF->{'log'}) {
|
if (defined $CONF->{'log'}) {
|
||||||
$logfile = $CONF->{'log'};
|
$logfile = $CONF->{'log'};
|
||||||
@@ -94,9 +95,9 @@ if ($UID == 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (defined $logfile) {
|
if (defined $logfile) {
|
||||||
$log = Mojo::Log->new (path => $logfile, level => $loglevel);
|
Log::Any::Adapter->set ('File', $logfile, log_level => $loglevel);
|
||||||
} else {
|
} else {
|
||||||
$log = Mojo::Log->new (path => '/dev/null', level => 'fatal');
|
Log::Any::Adapter->set ('File', '/dev/null');
|
||||||
}
|
}
|
||||||
|
|
||||||
# По-умолчанию, демонизируемся, если явно не указано, что этого делать не надо
|
# По-умолчанию, демонизируемся, если явно не указано, что этого делать не надо
|
||||||
|
|||||||
8
cpanfile
8
cpanfile
@@ -1,5 +1,5 @@
|
|||||||
requires 'Carp', '0';
|
requires 'Carp', '==1.50';
|
||||||
requires 'Cwd', '0';
|
requires 'Cwd', '==3.75';
|
||||||
requires 'Cwd::utf8', '==0.011';
|
requires 'Cwd::utf8', '==0.011';
|
||||||
requires 'Data::Dumper', '==2.183';
|
requires 'Data::Dumper', '==2.183';
|
||||||
requires 'Encode', '==3.16';
|
requires 'Encode', '==3.16';
|
||||||
@@ -12,11 +12,13 @@ requires 'IO::Socket::SSL', '==2.072';
|
|||||||
requires 'JSON', '==4.03';
|
requires 'JSON', '==4.03';
|
||||||
requires 'JSON::XS', '==4.03';
|
requires 'JSON::XS', '==4.03';
|
||||||
requires 'local::lib', '==2.000028';
|
requires 'local::lib', '==2.000028';
|
||||||
|
requires 'Log::Any', '==1.710';
|
||||||
|
requires 'Log::Any::Adapter', '==1.710';
|
||||||
|
requires 'Log::Any::For::Std', '==0.05';
|
||||||
requires 'Math::Random::Secure', '==0.080001';
|
requires 'Math::Random::Secure', '==0.080001';
|
||||||
requires 'Mojolicious', '==9.22';
|
requires 'Mojolicious', '==9.22';
|
||||||
requires 'Mojo::Redis', '==3.27';
|
requires 'Mojo::Redis', '==3.27';
|
||||||
requires 'Mojo::IOLoop::Signal', '==0.003';
|
requires 'Mojo::IOLoop::Signal', '==0.003';
|
||||||
requires 'Mojo::Log', '0';
|
|
||||||
requires 'open', '0';
|
requires 'open', '0';
|
||||||
requires 'POSIX', '0';
|
requires 'POSIX', '0';
|
||||||
requires 'Protocol::Redis::XS', '0';
|
requires 'Protocol::Redis::XS', '0';
|
||||||
|
|||||||
18
lib/Misc.pm
18
lib/Misc.pm
@@ -8,13 +8,13 @@ use utf8;
|
|||||||
use open qw (:std :utf8);
|
use open qw (:std :utf8);
|
||||||
|
|
||||||
# Модули для работы приложения
|
# Модули для работы приложения
|
||||||
|
use Log::Any qw ($log);
|
||||||
use Math::Random::Secure qw (irand);
|
use Math::Random::Secure qw (irand);
|
||||||
# Чтобы "уж точно" использовать hiredis-биндинги, загрузим этот модуль перед Mojo::Redis
|
# Чтобы "уж точно" использовать hiredis-биндинги, загрузим этот модуль перед Mojo::Redis
|
||||||
use Protocol::Redis::XS;
|
use Protocol::Redis::XS;
|
||||||
use Mojo::Redis;
|
use Mojo::Redis;
|
||||||
use Mojo::IOLoop;
|
use Mojo::IOLoop;
|
||||||
use Mojo::IOLoop::Signal;
|
use Mojo::IOLoop::Signal;
|
||||||
use Mojo::Log;
|
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
|
|
||||||
use Conf qw (LoadConf);
|
use Conf qw (LoadConf);
|
||||||
@@ -24,23 +24,7 @@ use Exporter qw (import);
|
|||||||
our @EXPORT_OK = qw (RunMisc);
|
our @EXPORT_OK = qw (RunMisc);
|
||||||
|
|
||||||
my $c = LoadConf ();
|
my $c = LoadConf ();
|
||||||
|
|
||||||
my $loglevel = $c->{'loglevel'} // 'info';
|
|
||||||
my $fwd_cnt = $c->{'forward_max'} // 5;
|
my $fwd_cnt = $c->{'forward_max'} // 5;
|
||||||
my $logfile;
|
|
||||||
my $log;
|
|
||||||
|
|
||||||
if (defined $c->{'log'}) {
|
|
||||||
$logfile = $c->{'log'};
|
|
||||||
} elsif (defined $c->{'debug_log'}) {
|
|
||||||
$logfile = $c->{'debug_log'};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined $logfile) {
|
|
||||||
$log = Mojo::Log->new (path => $logfile, level => $loglevel);
|
|
||||||
} else {
|
|
||||||
$log = Mojo::Log->new (path => '/dev/null', level => 'fatal');
|
|
||||||
}
|
|
||||||
|
|
||||||
# Основной парсер
|
# Основной парсер
|
||||||
my $parse_message = sub {
|
my $parse_message = sub {
|
||||||
|
|||||||
Reference in New Issue
Block a user