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

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

log4php.appender.A8.File=../ журналы /logs.log

Спасибо

2 ответа

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

(1) Предыдущий ответ user367134 полезен, однако в нем есть ошибка: при установке уровня не следует устанавливать для него постоянное целочисленное значение, обозначаемое 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");

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

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");

Актуальная ссылка на сайт

Кредит идет в "АКЖОЛ"

Другие вопросы по тегам