Size: a a a

2021 February 27

AP

Anton Petrusevich in Modern::Perl
я обдумываю смысл дальнейшего обсуждения. ну, допустим, я объясню, что, в моём понимании, все сообщения должны соответствовать какому-то набору форматов, что эти форматы прописаны заранее в конфиге, что между форматами есть способы переключения даже для одного аппендера, можно это оформить через контексты или стримы, что твой пример, как вариант, мог выглядеть как
logit debug::user { { user => $user, action => "logged", provider => $provider} };
, а можно было, конечно, и человокочитаемый экшен писать, но тогда анализировать более прикольно.

но ведь всё равно все уже определились кому чего надо и все останутся при своём мнении. вот и думаю я просто прекратить обсуждение за ненадобностью.
источник

b

basiliscos in Modern::Perl
Ну всё верно, вопрос о том, что кому надо. Текст - юзаешь обычный логгер, структурированный  - структура. Хотя они и взаимо-подменяемы, но оч. коряво )
источник

AP

Anton Petrusevich in Modern::Perl
про "текст" как суть логгирования я на сообщение раньше уже сказал что думаю
источник

AP

Anton Petrusevich in Modern::Perl
более того, когда сообщения для лога хотят одну и ту же информацию или она была доступна на более верхнем уровне, а вызванная функция вообще не обязана знать об особенностях окружения откуда вызвана, но логгировать какую-то информацию должна, то эту информацию вовсе можно занести в контекст и она будет доступна автоматически везде в логгере, её не надо будет передавать в функцию, она автоматически будет использована при сохранении в базу/грейлог/файл
источник

b

basiliscos in Modern::Perl
А чем ты такое читаешь? Очевидно, что в файле жсоноподобное глазами нечитабельно.
источник

AP

Anton Petrusevich in Modern::Perl
то есть, у тебя провайдер и юзер на некотором участке константны, то сообщение становится короче:
logit debug::user { { action => "logged"} };
или даже просто
logit debug::user {"logged"};
и соответствующий фильтр принесёт стркутуру (если потребуется)
источник

AP

Anton Petrusevich in Modern::Perl
basiliscos
А чем ты такое читаешь? Очевидно, что в файле жсоноподобное глазами нечитабельно.
я в файл жсоны не писал. в файл писал человекочитаемые строки. жсоноподобное шло в грейлог
источник

AP

Anton Petrusevich in Modern::Perl
при этом параллельно же (по выбору) что-то шло в дб
источник

b

basiliscos in Modern::Perl
Anton Petrusevich
я в файл жсоны не писал. в файл писал человекочитаемые строки. жсоноподобное шло в грейлог
да, удобно, что кастомный контекст можно с собой таскать нек. время.
источник

AP

Anton Petrusevich in Modern::Perl
basiliscos
да, удобно, что кастомный контекст можно с собой таскать нек. время.
угу. привязывать можно было к любому скаляру и когда скаляр выходил из области видимости — чистился стек
источник

AP

Anton Petrusevich in Modern::Perl
более того, к значению в этом скаляре можно было привязывать рутинг аппендеров и как следствие форматы строк
источник

AP

Anton Petrusevich in Modern::Perl
в общем, один раз настроенный конфиг потом можно было между проектами таскать и всё было единообразно
источник

AK

Andrey Konovalov in Modern::Perl
@Warstone
В доках на XLog сказано:
 #callback will not be called if log level is insufficient
       XLog::notice(sub {
           my $msg = '';
           for (...) {
              ...
              $msg .= ...
           }
           return $msg;
       });

Но так не работает, XLog::error(sub { 'hello' }) ничего не выводит. Why?
источник

b

basiliscos in Modern::Perl
весь скрипт покажи
источник

AK

Andrey Konovalov in Modern::Perl
Да просто сделай use XLog; XLog::error(sub {'hello'}) - это и есть весь скрипт :)
источник

AK

Andrey Konovalov in Modern::Perl
Я пробовал делать set_level, но понятное дело не помогло (error по дефолту должен логироваться)
источник

b

basiliscos in Modern::Perl
-> % perl -I var/lib -E 'use XLog; XLog::set_logger(sub { say $_[0] });  XLog::error("hi");' 
21-02-27 15:18:38 [error] -e:1,<top>(): hi
b@hp-note [03:18:38 PM] [~/development/crazy-panda/core-dev] [feature/MEIACORE-1553 *]
-> % perl -I var/lib -E 'use XLog; XLog::set_logger(sub { say $_[0] });  XLog::error(sub {"hi"});'
21-02-27 15:18:48 [error] -e:1,<top>(): hi
источник

b

basiliscos in Modern::Perl
всё работает
источник

b

basiliscos in Modern::Perl
ты логгер, видимо, не задал
источник

AK

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