LINUX.ORG.RU

Есть ли аналог Log::Log4perl?

 ,


0

3

Нужен модуль Perl для логирования:

1) Экспортирующий функции с именами в духе debug_, warn_, error_, fatal_ для собственно вывода отладочных сообщений

2) Позволяющий установить LogLevel, сообщения ниже которого логироваться не будут - например, функцией log_level

3) Дающий возможность писать одновременно и в STDERR, и в журнальный файл - например, последовательным вызовом open_log(*STDERR) и open_log($fileHandler)

Log::Log4perl делает в принципе то, что нужно, но в Easy-режиме он слишком примитивен, да и названия функций в заглавном регистре - это для элегантного Perl'а какой-то откровенный слоновий трэш.

А в «полноценном» режиме Log::Log4perl чрезмерно тяжеловесен: я терпеть не могу печатать что-то вроде $logger->debug(«message»), если можно было бы сказать просто debug(«message») и не сильно страдать от кажущегося несовершенства такого подхода.

Собственно, мне было бы крайне несложно написать такой модуль для логирования, но в мире Perl подобный подход считается в корне неверным: здесь принято всё-таки сначала поискать чужой подходящий модуль на CPAN или GitHub'е, а только потом уже от крайней безысходности разве что ваять всё самостоятельно.

В общем, есть ли простой аналог Log::Log4perl - желательно вообще без намёков на б-гомеркзий ООП, но зато, например, показывающий стек функций и строку, в которой была вызвана соотв. процедура логирования?

Спасибо!

★★★★★

Ответ на: комментарий от Difrex

Ну так зачем мне тогда вообще log4perl - с таким успехом я их и с нуля написать могу, тем более, что всю нехитрую логику и названия можно тупо стырить из BASH'ового модуля, написанного мной ранее.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Ну так зачем мне тогда вообще log4perl

Не знаю :) У меня написан свой модуль для логирования

Difrex ★★★★
()

Когда-то использовал самописный, ушел с него на Mojo::Log. Модуль достаточно гибкий, удобно менять его методы или декорировать.

Пункты 1 и 3 - решается декораторами, хоть и извращение. Пункт 2 поддерживается много где, только вот конкретные реализации тебе могут не понравиться (не везде гибко настраивается). Стектрейсы тоже легко прикрутить через декоратор.

желательно вообще без намёков на б-гомеркзий ООП

В своем репертуаре ...

outtaspace ★★★
()

Log::Log4perl делает в принципе то, что нужно
я терпеть не могу печатать что-то вроде $logger->debug(«message»), если можно было бы сказать просто debug(«message»)

напиши обвязку(пару минут), если ничего не нашел а упёртость осталась :)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.