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");
Кредит идет в "АКЖОЛ"