如何配置log4php以将不同的日志级别记录到同一记录器的不同文件中

时间:2011-04-28 05:22:16

标签: php cakephp log4php

我有一个正常的DEBUG级别日志用于应用程序。我需要的是另外记录所有ERROR级事件以分离错误日志。我正在使用这样的配置:

<?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> 

此配置仅记录调试。如果我首先放置错误级别记录器,那么它将仅记录到常规appender,但调试记录器将不起作用。我想让他们都工作。

1 个答案:

答案 0 :(得分:3)

您可以像这样使用第二个appender:

<?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>