From 352dc3b54cc7873e8024622670cc1d15d50935cc Mon Sep 17 00:00:00 2001 From: eleksir Date: Tue, 28 Dec 2021 02:11:34 +0300 Subject: [PATCH] Use logging facility from mojo --- bin/aleesa-craniac | 30 ++++++++---------------------- cpanfile | 4 +--- data/config_sample.json | 2 +- lib/Craniac.pm | 28 ++++++++++++++++++++++------ 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/bin/aleesa-craniac b/bin/aleesa-craniac index 96df862..a85721a 100755 --- a/bin/aleesa-craniac +++ b/bin/aleesa-craniac @@ -29,9 +29,7 @@ no Cwd; use Cwd::utf8 qw (chdir abs_path); use File::Basename qw (basename dirname); use File::Path qw (make_path); -use Log::Any qw ($log); -use Log::Any::Adapter; -use Log::Any::For::Std; +use Mojo::Log; use POSIX qw (setgid setuid setsid); use Conf qw (LoadConf); use Craniac qw (RunCraniac); @@ -47,6 +45,7 @@ my $piddir = '/var/run/' . basename (abs_path ($PROGRAM_NAME)); my $C = LoadConf (); my $loglevel = $C->{'loglevel'} // 'notice'; my $logfile; +my $log; if (defined $C->{'log'}) { $logfile = $C->{'log'}; @@ -78,10 +77,10 @@ if ($UID == 0) { unless (-d $logdir) { make_path ( - $logdir, { - uid => $uid, - group => $gid - } + $logdir, { + uid => $uid, + group => $gid + } ) or die "Unable to create $logdir: $OS_ERROR\n"; } } @@ -94,21 +93,9 @@ if ($UID == 0) { } if (defined $logfile) { - Log::Any::Adapter->set ('File', $logfile, log_level => $loglevel); - - # Some annoying CHI logging events come with category set to CHI::Driver and log_level set to debug. - # Until we use start using Log::Any native features and set whole loglevel accordingly, lets lower - # verbosity paticulary for CHI. - Log::Any::Adapter->set ( - { - category => 'CHI::Driver' - }, - 'File', - $logfile, - log_level => 'warn' - ); + $log = Mojo::Log->new (path => $logfile, level => $loglevel); } else { - Log::Any::Adapter->set ('File', '/dev/null'); + $log = Mojo::Log->new (path => '/dev/null', level => 'fatal'); } # по-умолчанию, демонизируемся, если явно не указано, что этого делать не надо @@ -160,7 +147,6 @@ sub daemonize { __fork (); POSIX::setsid (); open STDIN, '<', '/dev/null'; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen) - # we handle STDOUT && STDERR via Log::Any::For::Std, so do not close them explicitly #open STDOUT, '>', '/dev/null'; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen) #open STDERR, '>', '/dev/null'; ## no critic (InputOutput::RequireCheckedSyscalls, InputOutput::RequireCheckedOpen) __fork (); diff --git a/cpanfile b/cpanfile index 417447c..61c7c4a 100644 --- a/cpanfile +++ b/cpanfile @@ -8,11 +8,9 @@ requires 'File::Path'; requires 'Hailo'; requires 'JSON::XS'; requires 'local::lib'; -requires 'Log::Any'; -requires 'Log::Any::Adapter'; -requires 'Log::Any::For::Std'; requires 'Math::Random::Secure'; requires 'Mojo::IOLoop'; +requires 'Mojo::Log'; requires 'Mojo::Redis'; requires 'POSIX'; requires 'Protocol::Redis::XS'; diff --git a/data/config_sample.json b/data/config_sample.json index eddd045..48820bc 100644 --- a/data/config_sample.json +++ b/data/config_sample.json @@ -19,7 +19,7 @@ # logs goes there "log" : "/var/log/aleesa-craniac/aleesa-craniac.log", - "loglevel": "notice", + "loglevel": "info", # ditto "pid" : "/var/run/aleesa-craniac/aleesa-craniac.pid" diff --git a/lib/Craniac.pm b/lib/Craniac.pm index e1e3e04..ed021af 100644 --- a/lib/Craniac.pm +++ b/lib/Craniac.pm @@ -19,11 +19,11 @@ use English qw ( -no_match_vars ); # Модули для работы приложения use Digest::SHA qw (sha1_base64); use Hailo; -use Log::Any qw ($log); +use Mojo::IOLoop; +use Mojo::Log; # Чтобы "уж точно" использовать hiredis-биндинги, загрузим этот модуль перед Mojo::Redis use Protocol::Redis::XS; use Mojo::Redis; -use Mojo::IOLoop; use Math::Random::Secure qw (irand); use Text::Fuzzy qw (distance_edits); @@ -39,6 +39,22 @@ sub brains (@); sub RunCraniac (); my $c = LoadConf (); +my $loglevel = $c->{'loglevel'} // 'info'; +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 $hailo; sub RandomCommonPhrase () { @@ -241,13 +257,13 @@ my $parse_message = sub { # Main loop, он же event loop sub RunCraniac () { - $log->notice ("[NOTICE] Connecting to $c->{server}, $c->{port}"); + $log->info ("[INFO] Connecting to $c->{server}, $c->{port}"); my $redis = Mojo::Redis->new ( sprintf 'redis://%s:%s/1', $c->{server}, $c->{port} ); - $log->notice ('[NOTICE] Registering connection-event callback'); + $log->info ('[INFO] Registering connection-event callback'); $redis->on ( connection => sub { @@ -270,10 +286,10 @@ sub RunCraniac () { my $pubsub = $redis->pubsub; my $sub; - $log->notice ('[NOTICE] Subscribing to redis channels'); + $log->info ('[INFO] Subscribing to redis channels'); foreach my $channel (@{$c->{channels}}) { - $log->info ("[INFO] Subscribing to $channel"); + $log->debug ("[DEBUG] Subscribing to $channel"); $sub->{$channel} = $pubsub->json ($channel)->listen ( $channel => sub { $parse_message->(@_); }