Size: a a a

2021 February 27

AP

Anton Petrusevich in Modern::Perl
Andrey Konovalov
Вообще не понял, нужно больше кода. Наверное, он есть в PEF :)
был...
источник

W

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

AP

Anton Petrusevich in Modern::Perl
Warstone
Не понимаю чем тебя XLog не устраивает? Разве только тем, что первый раз он их-таки вычислит...
я ничего не говорил что меня что-то не устраивает в нём
источник

AK

Andrey Konovalov in Modern::Perl
Антон, если XLog::info(@args) "вызывается" при  уровне логирования выше info - там вообще НИЧЕГО происходить не будет ведь
источник

AP

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

AK

Andrey Konovalov in Modern::Perl
Речь о том, что НИЧЕГО - лучше, чем вызов функции логгера
источник

W

Warstone in Modern::Perl
Andrey Konovalov
Речь о том, что НИЧЕГО - лучше, чем вызов функции логгера
Ну не совсем ничего...
источник

W

Warstone in Modern::Perl
То есть если мы потом включим логирование, то вызов-таки произойдет.
источник

AK

Andrey Konovalov in Modern::Perl
Warstone
Ну не совсем ничего...
Что, всё-таки некая функция будет выполнена? :(
источник

AP

Anton Petrusevich in Modern::Perl
Andrey Konovalov
Антон, если XLog::info(@args) "вызывается" при  уровне логирования выше info - там вообще НИЧЕГО происходить не будет ведь
моё предложение звучит как XLog::info {@args}
источник

W

Warstone in Modern::Perl
Andrey Konovalov
Что, всё-таки некая функция будет выполнена? :(
Смотри:

У тебя есть код:

my $a = 1;
XLog::info("$a");

При первом вызове в первом приближении считай что этот код поменяется на:

my $a = 1;
XLog::log(XLog::INFO, "$a") if XLog::log_level <= XLog::INFO;

Только реального if'а там не будет а все это будет вставлено одним опкодом.
источник

W

Warstone in Modern::Perl
То есть теперь это место, если XLog::log_level слишком высокий - не будет вызывать логирование. Но проверять - надо-ли будет каждый раз, но проверка будет гораздо быстрее чем если-бы ты сам if в код написал.
источник

AK

Andrey Konovalov in Modern::Perl
Anton Petrusevich
моё предложение звучит как XLog::info {@args}
Оно не совсем на тему дискуссии...
XLog::info в принципе ничего не будет делать если set_level('error')
XLog::info позовёт sub {}, если set_level('debug')
НО в таком случае, где экономия-то?
источник

AP

Anton Petrusevich in Modern::Perl
Andrey Konovalov
Оно не совсем на тему дискуссии...
XLog::info в принципе ничего не будет делать если set_level('error')
XLog::info позовёт sub {}, если set_level('debug')
НО в таком случае, где экономия-то?
блин, я же русским по белому пишу
источник

AK

Andrey Konovalov in Modern::Perl
Экономия может быть только если сам по себе вызов XLog::info произойдёт в любом случае!
источник

AK

Andrey Konovalov in Modern::Perl
А он НЕ происходит при set_level('error')
источник

W

Warstone in Modern::Perl
Andrey Konovalov
Экономия может быть только если сам по себе вызов XLog::info произойдёт в любом случае!
Как раз нет
источник

W

Warstone in Modern::Perl
Или ты не мне
источник

AK

Andrey Konovalov in Modern::Perl
Warstone
Как раз нет
Антону
источник

AK

Andrey Konovalov in Modern::Perl
Насчёт sub {} вместо $message
источник