log4php - динамически изменять имя файла журнала в log4php.properties - PullRequest
1 голос
/ 17 апреля 2010

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 февраля 2011

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");
0 голосов
/ 29 декабря 2010

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

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

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

Кредит переходит к "AKJOL"

...