|
Is it
possible to assign one appender to multiple output files? I need to set many log
files with similar settings. The only difference is output file.
As
the number of log files is rather large, I’d like to avoid defining appender for
each log file. It’s hard to manage a large config file and the flexibility is
poor.
Example script:
$_ENV['log4php.logdir']
= "/foo/logs";
require_once(LOG4PHP_DIR.'/LoggerManager.php');
function
logger($message, $logfile)
{
$_ENV['log4php.logfile']
= $logfile;
LoggerManagerDefaultInit();
$logger
=& LoggerManager::getLogger('myLog');
$logger->info($message);
}
logger(216;foo msg’,
‘foolog’);
logger(216;bar msg’,
‘barlog’);
[...]
Config file:
log4php.rootLogger=WARN,
ROOT
log4php.appender.ROOT=LoggerAppenderRollingFile
log4php.appender.ROOT.layout=LoggerPatternLayout
log4php.appender.ROOT.layout.ConversionPattern="[%d][%p]:
%m%n"
log4php.appender.CHANGE=LoggerAppenderRollingFile
log4php.appender.CHANGE.layout=LoggerPatternLayout
log4php.appender.CHANGE.layout.ConversionPattern="[%d][%p][%x]:
%m%n"
log4php.appender.CHANGE.MaxFileSize=10000KB
log4php.appender.CHANGE.filename="${log4php.logdir}/${log4php.logfile}x.log"
log4php.logger.myLog=
DEBUG, CHANGE
The
code above works only for the first time. Every subsequent logger calls doesn̵7;t
create log files nor write contents.
Does
anyone have a clue how to solve this
problem?
Marek Mizier
|