Этого можно достичь, используя несколько приложений с фильтрами и один регистратор.
Обзор
Вы можете определить несколько приложений, чтобы отправлять записи в разные пункты назначения.Для каждого уровня мы определим 1 приложение, и каждый из них будет регистрировать разные файлы.
В дополнение к этому нам необходимо создать фильтр для каждого приложения.Мы будем использовать фильтр LoggerFilterLevelRange и укажем минимальный и максимальный уровень.Обратите внимание, что фильтр LoggerFilterLevelMatch нельзя использовать, так как он соответствует фильтру, но нейтрален по отношению к другим фильтрам.
Что касается регистраторов, мы присоединим все наши дополнения кодин и единственный регистратор.
Таким образом, вы можете отправлять различные сообщения регистрации в разные файлы в зависимости от уровня ошибки.
Конфигурация
<appender name="dlog" class="LoggerAppenderRollingFile">
<param name="file" value="C:/log/dlog" />
<filter class="LoggerFilterLevelRange">
<param name="levelMin" value="debug" />
<param name="levelMax" value="debug" />
</filter>
</appender>
<appender name="ilog" class="LoggerAppenderRollingFile">
<param name="file" value="C:/log/ilog" />
<filter class="LoggerFilterLevelRange">
<param name="levelMin" value="info" />
<param name="levelMax" value="info" />
</filter>
</appender>
<root>
<level value="INFO" />
<appender_ref ref="ilog" />
<appender_ref ref="dlog" />
</root>
</configuration>
Использование
require_once 'Logger.php';
Logger::configure('log_config.xml');
$logger = Logger::getLogger();
$logger->info('This message is meant to inform.');
$logger->debug('A debug message!');
Надеюсь, это поможет.