log4j.rootLogger=info, stdout, R
# Use this instead for debugging:
# log4j.rootLogger=trace, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p %c[%t] - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=ebxmlrr.log
log4j.appender.R.MaxFileSize=1MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{ISO8601} %p %c[%t] - %m%n

解决方案 »

  1.   

    #1 定义了两个输出端log4j.rootLogger = debug, A1, A2
    #log4j.rootLogger = debug, A1, A2,A3
    #log4j.rootLogger = debug,A2#2 定义A1输出到控制器log4j.appender.A1 = org.apache.log4j.ConsoleAppender
    #3 定义A1的布局模式为PatternLayoutlog4j.appender.A1.layout = org.apache.log4j.PatternLayout
    #4 定义A1的输出格式log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c - %m%n#5 定义A2输出到文件
    log4j.appender.A2 = org.apache.log4j.RollingFileAppender
    #6 定义A2要输出到哪一个文件
    log4j.appender.A2.File =D:\\log4j.log
    #7 定义A2的输出文件的最大长度
    log4j.appender.A2.MaxFileSize = 1000KB
    #8 定义A2的备份文件数
    log4j.appender.A2.MaxBackupIndex = 1
    #9 定义A2的布局模式为PatternLayout
    log4j.appender.A2.layout = org.apache.log4j.PatternLayout
    #10 定义A2的输出格式
    #log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
    log4j.appender.A2.layout.ConversionPattern = %t  :%-5p  :%c  :%m%n#11区 定义A3输出到数据库#log4j.appender.A3 =org.apache.log4j.jdbc.JDBCAppender
    #log4j.appender.A3.bufferSize =1#log4j.appender.A3.driver =oracle.jdbc.OracleDriver
    #log4j.appender.A3.URL=jdbc:oracle:thin:@temp:1521:test#log4j.appender.A3.URL=jdbc:oracle:oci8:@test
    #log4j.appender.A3.user =user
    #log4j.appender.A3.password =1234
    #log4j.appender.A3.sql = INSERT INTO T_LOG (createDate, thread, priority, category, message) values(sysdate, '%t', '%-5p', '%c', '%m%n')
    #log4j.appender.A3.layout = org.apache.log4j.PatternLayout
    #log4j.appender.A3.layout.ConversionPattern = INSERT INTO T_LOG (createDate, thread, priority, category, message) values(sysdate, '%t', '%-5p', '%c', '%m')
    #log4j.appender.A3.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
    #log4j.appender.A3.layout.ConversionPattern=INSERT INTO T_LOG (createDate, thread, priority, category, message) values(sysdate, '', '%p', '%c', '%m%n')
      

  2.   

    to: infowain(infowain)
    这样应该是文件到1m才会生成吧,
    我想一有log信息就立即生成文件。
      

  3.   

    这样应该不是文件到1m才会生成,而是文件到1m后就会转存为另一个文件,比如如果LOG文件名ebxmlrr.log则转存后文件为ebxmlrr01.log,新的LOG信息继续发送到文件ebxmlrr.log中,
    log4j.appender.R.MaxBackupIndex=10 定义可以最多保存10个文件.
      

  4.   


    要实现这个功能,必须用xml形式的配置文件
    如下,就可以实现!<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration >        <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
                    <layout class="org.apache.log4j.PatternLayout">
                         <param name="ConversionPattern" value="%c %d{ISO8601}
    -- %p -- %m%n"/>
                    </layout>
            </appender>    <appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
          <param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS_DEBUG.log"/>
          <param name="Append" value="true"/>
          <param name="MaxFileSize" value="500KB"/>
          <param name="MaxBackupIndex" value="2"/>
                    <layout class="org.apache.log4j.PatternLayout">
                         <param name="ConversionPattern" value="%c %d{ISO8601}
    -- %p -- %m%n"/>
                    </layout>
                    <filter class="org.apache.log4j.varia.LevelRangeFilter">
                            <param name="LevelMin" value="DEBUG" />
                            <param name="LevelMax" value="DEBUG" />
                    </filter>
            </appender>    <appender name="INFO" class="org.apache.log4j.RollingFileAppender">
          <param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS_INFO.log"/>
          <param name="Append" value="true"/>
          <param name="MaxFileSize" value="500KB"/>
          <param name="MaxBackupIndex" value="2"/>
                    <layout class="org.apache.log4j.PatternLayout">
                         <param name="ConversionPattern" value="%c %d{ISO8601}
    -- %p -- %m%n"/>
                    </layout>
                    <filter class="org.apache.log4j.varia.LevelRangeFilter">
                            <param name="LevelMin" value="INFO" />
                            <param name="LevelMax" value="INFO" />
                    </filter>
       </appender>
       <appender name="WARN" class="org.apache.log4j.RollingFileAppender">
          <param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS.log"/>
          <param name="Append" value="true"/>
          <param name="MaxFileSize" value="500KB"/>
          <param name="MaxBackupIndex" value="2"/>
                    <layout class="org.apache.log4j.PatternLayout">
                         <param name="ConversionPattern" value="%c %d{ISO8601}
    -- %m%n"/>
                    </layout>
                    <filter class="org.apache.log4j.varia.LevelRangeFilter">
                            <param name="LevelMin" value="WARN" />
                            <param name="LevelMax" value="WARN" />
                    </filter>
       </appender>
       <appender name="ERROR" class="org.apache.log4j.RollingFileAppender">
          <param name="File" value="E:\\java_study\\MIS\\MIS\\WEB-INF\\log\\MIS_ERROR.log"/>
          <param name="Append" value="true"/>
          <param name="MaxFileSize" value="500KB"/>
          <param name="MaxBackupIndex" value="2"/>
                    <layout class="org.apache.log4j.PatternLayout">
                         <param name="ConversionPattern" value="%c %d{ISO8601}
    -- %p -- %m%n"/>
                    </layout>
                    <filter class="org.apache.log4j.varia.LevelRangeFilter">
                            <param name="LevelMin" value="ERROR" />
                            <param name="LevelMax" value="ERROR" />
                    </filter>
       </appender>
            <root>
                    <priority value="debug"/>
                      <!--appender-ref ref="STDOUT"/-->
                      <appender-ref ref="DEBUG"/>
                      <appender-ref ref="INFO"/>
                      <appender-ref ref="WARN"/>
                      <appender-ref ref="ERROR"/>
            </root></log4j:configuration>
      

  5.   


    写好log4j.properties文件后,将该属性文件放在你能调用到的地方,比如 \WEB-INF 下面即可,然后写一个servlet以便在应用服务器启动时加载它,并且在web.xml中配置好,如:web.xml
    --------------------------------------------------------------------------
    <servlet>
        <servlet-name>InitLog4j</servlet-name>
        <servlet-class>com.test.init.Log4jInit</servlet-class>
        <init-param>
          <param-name>log4j</param-name>
          <param-value>/WEB-INF/log4j.properties</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
    -----------------------------------------------------------
    servlet  Log4jInit  如:import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.log4j.*;
    public class Log4jInit extends HttpServlet {
            public void init() throws ServletException {
            String prefix =  getServletContext().getRealPath("/");
            String file = getInitParameter("log4j");
            // if the log4j-init-file is not set, then no point in trying
            System.out.println("................log4j start");
            if(file != null) {
              PropertyConfigurator.configure(prefix+file);
            }
    }
    public void doGet(HttpServletRequest req, HttpServletResponse res) {
      }
    }
      

  6.   

    我是研究别人的开源程序,
    log4j.properties在classes根目录下,log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=ebxmlrr.log像这样写,ebxmlrr.log应该在哪个目录下生成,是在classes下嘛,还是web-inf下,
    我找不到啊。
      

  7.   

    zeq258(近朱者赤) 
    要实现这个功能,必须用xml形式的配置文件
    ============================================
    这个说法不对,要实现这个功能不是只有xml配置文件才能实现,在log4j中如果要使用Filter功能,才只能用xml配置文件才能实现,如果用properties属性文件是不能实现的,但是这里的楼主所希望的功能,两种形式的配置文件都可以,以上朋友已经说出了具体的实现了,我就不多说了,只是纠正一个问题,以免楼主理解错误。
      

  8.   

    可是生成的log文件应该在哪个目录下呢。
    我怎么找也找不到???
      

  9.   

    对不起,把楼主的问题,看错了,把问题复杂话了,如果是把每一种级别的日志输出到一个文件,那么就是我说的哪个方法,而且必须用xml格式的。