How to configure log4php to log different log levels to different files for the same logger

StackOverflow https://stackoverflow.com/questions/5813981

  •  25-10-2019
  •  | 
  •  

Pergunta

I have a normal DEBUG level log for application. What I need is to additionally log all ERROR level events to separate error log. I am using configuration like this:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<log4php:configuration xmlns:log4php="http://www.vxr.it/log4php/" 
threshold="all" debug="false"> 
    <appender name="memcache_debug" class="LoggerAppenderFile"> 
                <param name="file" value="${LOGS}memcache_debug.log" /> 
        <layout class="LoggerPatternLayout"> 
            <param name="conversionPattern" value="%d [%t] %-5p %c %m 
%n" /> 
        </layout> 
    </appender> 
    <root> 
        <level value="debug" /> 
        <appender_ref ref="memcache_debug" /> 
    </root> 
</log4php:configuration> 

This configuration logs debug only. If I put error level logger first, then it will log only to general appender, but debug logger will not work. I would like to have them both working.

Foi útil?

Solução

You could use a second appender like so:

<?xml version="1.0" encoding="ISO-8859-1"?>
<log4php:configuration xmlns:log4php="http://www.vxr.it/log4php/" threshold="all" debug="false">
  <appender name="memcache_debug" class="LoggerAppenderFile">
    <param name="file" value="${LOGS}memcache_debug.log" />
    <layout class="LoggerPatternLayout">
      <param name="conversionPattern" value="%d [%t] %-5p %c %m %n" />
    </layout>
  </appender>
  <appender name="memcache_error" class="LoggerAppenderFile" threshold="error" >
    <param name="file" value="${LOGS}memcache_error.log" />
    <layout class="LoggerPatternLayout">
      <param name="conversionPattern" value="%d [%t] %-5p %c %m %n" />
    </layout>
  </appender>
  <root>
    <level value="debug" />
    <appender_ref ref="memcache_debug" />
    <appender_ref ref="memcache_error" />
  </root>
</log4php:configuration>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top