На самом деле, как работает Log4perl (это синглтон), get_logger () будет возвращать точно такой же объект везде, где в вашей программе он вызывается из
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init( $ERROR );
print Log::Log4perl->get_logger("MyLog"), "\n";
package Some::Other::Package;
print Log::Log4perl->get_logger("MyLog"), "\n";
Это печатает (например):
Log::Log4perl::Logger=HASH(0x15a9d48)
Log::Log4perl::Logger=HASH(0x15a9d48)
Так что, если вы хотите использовать один и тот же журнал $ во всех ваших модулях, вы можете просто вызвать get_logger ("MyLog") в каждом из этих модулей.
Но лучший способ, если вы хотите иметь возможность включать или выключать вход в систему в одном конкретном модуле, это просто вызвать get_logger () без аргументов. Это вернет вам регистратор, привязанный к имени текущего пакета, так что вы можете включить или отключить регистратор этого пакета в своем конфигурационном файле.