Size: a a a

2021 February 27

b

basiliscos in Modern::Perl
Andrey Konovalov
Не понял, а зачем логгер задавать, там же дефолт есть . Он же сообщения не из sub {} логирует
логгер - это бэкенд, куда мессаджи складывать. Дальше. XLog::logxxx() - это фронтэнд, к-й лог-мессаджи производит.
источник

b

basiliscos in Modern::Perl
бэкэнды есть - перловый (в примере выше), XLog::Console, XLog::File и XLog::Multi
источник

b

basiliscos in Modern::Perl
по дефолту логера нет, и сообщение отправляется в /dev/null
источник

AK

Andrey Konovalov in Modern::Perl
perl -E 'use XLog; XLog::set_logger(sub { XLog::error($_[0]) }); XLog::error(sub {"FYAH"})'

Ой, блин, рекурсия :)
Ясненько теперь, без установки логгера никак
источник

AK

Andrey Konovalov in Modern::Perl
Вполне приятно так работает. Но отсутствие поддержки @message на входе немного бесит всё же
use 5.16.1;
use AnyEvent;
use AnyEvent::Handle;
use XLog;

my $cv = AE::cv;

XLog::set_logger(sub {  
   state $afh_stderr = AnyEvent::Handle->new(fh => \*STDERR);
   my $msg = $_[0] =~ s%(?<=[^\n])$%\n%r;
   my $aeh_alarm; $aeh_alarm = AE::timer 0.1, 0, sub {
       undef $aeh_alarm;
       $afh_stderr->push_write($msg);
       $cv->send
   }
});

XLog::error(sub {'FYAH, Gummy-Bluez!'});

$cv->recv;
источник

AK

Andrey Konovalov in Modern::Perl
Почему так привязались к единственному скаляру-то?
источник

b

basiliscos in Modern::Perl
ну это ж уже отформаченный мессадж. А что хотелось?
источник

b

basiliscos in Modern::Perl
Andrey Konovalov
Вполне приятно так работает. Но отсутствие поддержки @message на входе немного бесит всё же
use 5.16.1;
use AnyEvent;
use AnyEvent::Handle;
use XLog;

my $cv = AE::cv;

XLog::set_logger(sub {  
   state $afh_stderr = AnyEvent::Handle->new(fh => \*STDERR);
   my $msg = $_[0] =~ s%(?<=[^\n])$%\n%r;
   my $aeh_alarm; $aeh_alarm = AE::timer 0.1, 0, sub {
       undef $aeh_alarm;
       $afh_stderr->push_write($msg);
       $cv->send
   }
});

XLog::error(sub {'FYAH, Gummy-Bluez!'});

$cv->recv;
выглядет как оч. неэффективный код. Советую взять XLog::Console как логгер. Делает тоже самое, на C, и зуб даю, что быстрей по CPU и по памяти )
источник

AK

Andrey Konovalov in Modern::Perl
basiliscos
ну это ж уже отформаченный мессадж. А что хотелось?
Ну так в форматтер-то прилетает скаляр
источник

AK

Andrey Konovalov in Modern::Perl
А хотелось бы, чтобы массив прилетал.
источник

AK

Andrey Konovalov in Modern::Perl
XLog::info(qw/somewhere in the darkness/)
В форматёр прилетает
[qw/somewhere in the darkness/]
источник

b

basiliscos in Modern::Perl
массив чего?
источник

AK

Andrey Konovalov in Modern::Perl
См выше
источник

b

basiliscos in Modern::Perl
ну... мы логируем строку, а не строки/метки/... если надо именно массивы и т.п. см. что Антон предлагал.
источник

b

basiliscos in Modern::Perl
ну и потому, что даже если аргументы склеить, то получится somewhereinthedarkness, а если "подставлять" в формат, то тк нет % то получится просто somewhere
источник

AK

Andrey Konovalov in Modern::Perl
basiliscos
ну и потому, что даже если аргументы склеить, то получится somewhereinthedarkness, а если "подставлять" в формат, то тк нет % то получится просто somewhere
Просто в большинстве случаев все равно придется за рамками логера склеивать
источник

b

basiliscos in Modern::Perl
зачем?
источник

b

basiliscos in Modern::Perl
xlog'::file тебе на диске склеит
источник

B

Black in Modern::Perl
Друзья, подскажите есть ли модуль приводящий query string формата ?foo[bar][0]=555&foo[bar][1]=444 в структуру perl?
источник

IB

Ivan Bessarabov in Modern::Perl
Black
Друзья, подскажите есть ли модуль приводящий query string формата ?foo[bar][0]=555&foo[bar][1]=444 в структуру perl?
источник