When I define oneMessagePerAppender=1 in the log4perl configuration, messages are still written to the root logger while a category is called.
Example configuration:
----------------------
log4perl.oneMessagePerAppender=1
log4perl.rootLogger=INFO, LOGFILE
log4perl.appender.LOGFILE=Log::Log4perl::Appender::File
log4perl.appender.LOGFILE.filename=root.log
log4perl.appender.LOGFILE.mode=append
log4perl.category.TEST=DEBUG, TEST
log4perl.appender.TEST=Log::Log4perl::Appender::File
log4perl.appender.TEST.filename=test.log
log4perl.appender.TEST.mode=append
Call example:
-------------
$logger = Log::Log4perl->get_logger('TEST');
$logger->info('Hello');
This logs a message in both test.log and root.log (at the level indicated by the category).
Log4perl version: 1.09
Server: Apache/2.2.4, mod_perl/2.0.3, Perl/v5.8.4