log4php - Динамическое изменение имени файла журнала в log4php.properties

привет, как я могу динамически изменить имя файла журнала и путь в log4php.properties

log4php.appender.A8.File=../logs/logs.log

Спасибо


person sivamurugan    schedule 17.04.2010    source источник


Ответы (2)


2 полезные информации:

(1) Предыдущий ответ пользователя 367134 полезен, однако в нем есть ошибка: при установке уровня вы не должны устанавливать для него постоянное целочисленное значение, обозначаемое LoggerLevel::DEBUG. Вместо этого вы должны использовать функцию LoggerLevel::toLevel() для получения объекта LoggerLevel. то есть,

$rootlogger->setLevel(LoggerLevel::DEBUG);

Вместо этого должно быть:

$rootlogger->setLevel(LoggerLevel::toLevel(LoggerLevel::DEBUG));

(2) Вот пример, аналогичный приведенному выше, с некоторыми отличиями:

  • использует скользящие файлы журнала (максимальный размер каждого файла журнала составляет 100 МБ, и сохраняется не более 10)
  • использует пользовательский шаблон для строк журнала
  • исправляет ошибку setLevel
  • устанавливает уровень журнала в INFO

Код:

$rootlogger = Logger::getRootLogger();
$rootlogger->setLevel(LoggerLevel::toLevel(LoggerLevel::INFO));

$appender = new LoggerAppenderRollingFile("MyAppender");
$appender->setFile("custom_name.log", true);
$appender->setMaxBackupIndex(10); 
$appender->setMaxFileSize("100MB");
$appenderlayout = new LoggerLayoutPattern();
$pattern = '%d{Y-m-d H:i:s} [%p] %c: %m (at %F line %L)%n';
$appenderlayout->setConversionPattern($pattern);
$appender->setLayout($appenderlayout);
$appender->activateOptions();

$rootlogger->removeAllAppenders();
$rootlogger->addAppender($appender);

$rootlogger->info("info");
person erik.weathers    schedule 22.02.2011

Ну это не мой код, но вот пример кода и ссылка на сайт

require_once('log4php/Logger.php');

  $rootlogger = Logger::getRootLogger();
  $rootlogger->setLevel(LoggerLevel::DEBUG);

  $appender = new LoggerAppenderFile("MyAppender");
  $appender->setFile("mylogfile.log", true);
  $appenderlayout = new LoggerLayoutTTCC();
  $appender->setLayout($appenderlayout);
  $appender->activateOptions();

  $rootlogger->removeAllAppenders();
  $rootlogger->addAppender($appender);

  $rootlogger->info("info");
  $rootlogger->error("error");
  $rootlogger->debug("debug");

Фактическая ссылка на сайт

Кредит принадлежит "АКЖОЛ"

person user367134    schedule 29.12.2010
comment
@sivamurugan: надеюсь, это полезно - person user367134; 08.11.2011