mschilli / log4perl

Log4j Implementation For Perl
http://log4perl.com
Other
116 stars 66 forks source link

[feature/bug] provide a way to get appender instances that are not bound to any logger #124

Open XSven opened 1 year ago

XSven commented 1 year ago

This configuration

log4perl.logger.Foo                               = INFO, STDERR

log4perl.appender.STDERR                          = Log::Log4perl::Appender::Screen
log4perl.appender.STDERR.stderr                   = 1
log4perl.appender.STDERR.layout                   = Log::Log4perl::Layout::PatternLayout::Multiline
log4perl.appender.STDERR.layout.ConversionPattern = %m%n

log4perl.appender.FILE                            = Log::Log4perl::Appender::File
log4perl.appender.FILE.filename                   = file.log
log4perl.appender.FILE.mode                       = append
log4perl.appender.FILE.create_at_logtime          = 1
log4perl.appender.FILE.layout                     = Log::Log4perl::Layout::PatternLayout::Multiline
log4perl.appender.FILE.layout.ConversionPattern   = %m%n

defines a logger Foo and two appenders STDERR and FILE. The STDERR appender is bound to the logger; the FILE is not bound to any logger. It is not possible to get the FILE appender instance using either the class method appender_by_name() or $Log::Log4perl::Logger::APPENDER_BY_NAME{...}.

XSven commented 1 month ago

Could this be prioritized please. It is really annoying not to be able to configure appenders in a .properties file and bind them to a logger at runtime! Instead we are forced to bind all appenders and at runtime using eradicate_appender() instead.