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('foo msg', 'foolog');

logger('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't create log files nor write contents.

 

Does anyone have a clue how to solve this problem?

 

Marek Mizier

 

Reply via email to