从网上找了好多,但是用起来都会有点问题,以前用的是log4j.properties,因公司业务需要,需要用log4j.xml。希望哪位能给我一个较全的,性能好的,可用的log4j.xml配置。谢谢了

解决方案 »

  1.   


    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j,dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="appender1"
    class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="logfile.html" />
    <param name="MaxFileSize" value="1MB" />
    <param name="MaxBackupIndex" value="5" />
    <layout class="org.apache.logr4j.HTMLLayout">
    </layout>
    </appender>
    <root>
    <priority value="debug" />
    <appender-ref ref="appender1" />
    </root>
    </log4j:configuration>
      

  2.   

    谢谢你的回答,还有些关于log4j.xml的问题想请教
    这个xml文件在什么时候读?如果用xml替代properties的话是不是还要配置其他文件,比如说写了servlet什么的。
      

  3.   

    web.xml中配制如: <servlet>
    <servlet-name>initLog4j</servlet-name>
    <servlet-class>com.xxx.servlet.Log4j</servlet-class>
    <init-param>
    <param-name>log4j</param-name>
    <param-value>WEB-INF/config/Log4j.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    在用的时候: private final static Logger logger = Logger.getLogger(Text.class);        logger.error("创建附件失败",de);//现在就可以调用Logger类里面的方法啦!这里调用的是:error!还有debug等等
             
      

  4.   

    另外再给你个log4j.xml的一个配作文件,如:<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- %d %-5p (%F:%L) - %m%n --> <!-- Exception -->
        <appender name="log_file" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="c:/ntsky_exception.log" />
    <param name="append" value="true" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
    </layout>
    </appender>
    <appender name="log_console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
    </layout>
    </appender> <logger name="com.ntsky.bbs">
    <level value="DEBUG"/>
    <!-- <appender-ref ref="EXCEPTION_FILE"/> -->
    <appender-ref ref="log_console"/>
    </logger>

    <logger name="com.ntsky.framework">
    <level value="DEBUG"/>
    <!-- <appender-ref ref="EXCEPTION_FILE"/> -->
    <appender-ref ref="log_console"/>
    </logger> </log4j:configuration>
      

  5.   

    哇塞,这是我提问中,回答的最完整的帖子。三层都对题。不过我还有点疑问:这样的话是不是要必须开启服务器的时候才会记录,那调试单个类的时候不是不能记录了吗? 能不能有什么配置能将信息指定输入到某个文件,比如说说A类的调试信息就输入到A文件里,B类的调试信息就输入到B文件里。
      

  6.   

    只需要多定义几个logger就可以了,如下
    <logger name="com.ntsky.framework">
            <level value="DEBUG"/>
            <!-- <appender-ref ref="EXCEPTION_FILE"/> -->
            <appender-ref ref="log_console"/>
        </logger>    
      

  7.   

    只需要多定义几个logger就可以了,如下
    <logger name="com.ntsky.framework">
            <level value="DEBUG"/>
            <!-- <appender-ref ref="EXCEPTION_FILE"/> -->
            <appender-ref ref="log_console"/>
        </logger>    
      

  8.   

    只需要多定义几个logger就可以了,如下
    <logger name="com.ntsky.framework">
            <level value="DEBUG"/>
            <!-- <appender-ref ref="EXCEPTION_FILE"/> -->
            <appender-ref ref="log_console"/>
        </logger>