本帖最后由 zhangxu3414 于 2009-10-22 10:17:50 编辑

解决方案 »

  1.   

    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger 
    这个去掉 在commons-logging.propertieslog4j.rootLogger=INFO,R
    log4j.appender.R=org.apache.log4j.ConsoleAppender
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}[%c]-[%p]
    这个也去掉 在log4.properties
      

  2.   

    楼上说的没能明白
    我的配置文件里没有commons-logging.properties 
    另外用的是log4j.xml不是log4j.properties,且没有ConsoleAppender的配置
      

  3.   

    在root里设置全局的级别,在category或logger里设置各个类包的级别,例外Spring、hibernate的级别设置为error
    <?xml   version="1.0"   encoding="UTF-8" ?>  
    <!DOCTYPE   log4j:configuration   SYSTEM   "log4j.dtd">  
    <log4j:configuration   xmlns:log4j="http://jakarta.apache.org/log4j/">  
    <appender name="Debug" class="org.apache.log4j.RollingFileAppender">  
    <param name="Append" value="true"/>  
    <param name="File" value="D:/logs/Debug.log"/>
    <param name="Encoding" value="UTF-8"/>
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d,%-5p,%m%n"/> 
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="levelMin" value="Debug"/>
    <param name="levelMax" value="Debug"/>
    <param name="acceptOnMatch" value="true"/>
    </filter>  
    </appender>
    <appender name="Info" class="org.apache.log4j.RollingFileAppender">  
    <param name="Append" value="true"/>  
    <param name="File" value="D:/logs/Debug.log"/>
    <param name="Encoding" value="UTF-8"/>
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d,%-5p,%m%n"/> 
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="levelMin" value="Info"/>
    <param name="levelMax" value="Info"/>
    <param name="acceptOnMatch" value="true"/>
    </filter>  
    </appender>
    <appender name="Warn" class="org.apache.log4j.RollingFileAppender">  
    <param name="Append" value="true"/>  
    <param name="File" value="D:/logs/Debug.log"/>
    <param name="Encoding" value="UTF-8"/>
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d,%-5p,%m%n"/> 
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="levelMin" value="Warn"/>
    <param name="levelMax" value="Warn"/>
    <param name="acceptOnMatch" value="true"/>
    </filter>  
    </appender>
    <appender name="Error" class="org.apache.log4j.RollingFileAppender">  
    <param name="Append" value="true"/>  
    <param name="File" value="D:/logs/Error.log"/>
    <param name="Encoding" value="UTF-8"/>
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d,%-5p,%m%n"/> 
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="levelMin" value="Error"/>
    <param name="levelMax" value="Error"/>
    <param name="acceptOnMatch" value="true"/>
    </filter>  
    </appender>
    <appender name="Fatal" class="org.apache.log4j.RollingFileAppender">  
    <param name="Append" value="true"/>  
    <param name="File" value="D:/logs/Error.log"/>
    <param name="Encoding" value="UTF-8"/>
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="10"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d,%-5p,%m%n"/> 
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="levelMin" value="Fatal"/>
    <param name="levelMax" value="Fatal"/>
    <param name="acceptOnMatch" value="true"/>
    </filter>  
    </appender>
    <logger name="com.XXX。XXX" additivity="false">
    <level value="debug"/>
    <appender-ref ref="Debug"/>
    <appender-ref ref="Info"/>
    <appender-ref ref="Warn"/>
    <appender-ref ref="Error"/>
    <appender-ref ref="Fatal"/>
    </logger>
    <logger name="org.springframework">
    <level value="ERROR"/>
    <appender-ref ref="Error"/>
    <appender-ref ref="Fatal"/>
    </logger>
    <logger name="org.hibernate">
    <level value="ERROR"/>
    <appender-ref ref="Error"/>
    <appender-ref ref="Fatal"/>
    </logger>
    <logger name="org.apache">
    <level value="ERROR"/>
    <appender-ref ref="Error"/>
    <appender-ref ref="Fatal"/>
    </logger>
    <root>
    <appender-ref ref="Error"/>
    <appender-ref ref="Fatal"/>
    </root>
    </log4j:configuration>
      

  4.   

    刚好我也有这个问题,回了你吧log4j.rootLogger=INFO,R 把后面这个指定日志输出的地点去了就行了。就是
    log4j.rootLogger=INFO   启动的时候会报配置不正,但只是警告,而且,不会再把启动日志写进你的文件了。