就是将所有的日志写入日志文件里面。RollingFileAppender这种在日志较多时,会覆盖掉一部分的。

解决方案 »

  1.   

    指定log4j的配置文件,配置文件名称和存放路径都可自定义。当获得了日志记录器之后,第二步将配置Log4j环境,其语法为: 
    BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。 
    PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。 
    DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
    Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面引用的是使用Java特性文件做为配置文件的方法(不用XML解析器):配置根Logger,其语法为: 
    log4j.rootLogger = [ level ] , appenderName, appenderName, …其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 
    appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 
    配置日志信息输出目的地Appender,其语法为 
    log4j.appender.appenderName = fully.qualified.name.of.appender.class
    log4j.appender.appenderName.option1 = value1

    log4j.appender.appenderName.option = valueN其中,Log4j提供的appender有以下几种: 
    org.apache.log4j.ConsoleAppender(控制台), 
    org.apache.log4j.FileAppender(文件), 
    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), 
    org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 
    配置日志信息的格式(布局),其语法为: 
    log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
    log4j.appender.appenderName.layout.option1 = value1

    log4j.appender.appenderName.layout.option = valueN其中,Log4j提供的layout有以下几种: 
    org.apache.log4j.HTMLLayout(以HTML表格形式布局), 
    org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 
    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 
    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 
    下面是一个log4j配置文件的例子(内容不含前面的行号):  1log4j.rootLogger=INFO, A1 , R
     2
     3log4j.appender.A1=org.apache.log4j.ConsoleAppender 
     4log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
     5log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n 
     6
     7log4j.appender.R=org.apache.log4j.RollingFileAppender
     8log4j.appender.R.File=$TOMCAT_HOME/logs/log4j.log
     9##将$TOMCAT_HOME换成tomcat的安装目录,也可以指定一个存在的任意目录
    10log4j.appender.R.MaxFileSize=100KB
    11log4j.appender.R.MaxBackupIndex=1
    12log4j.appender.R.layout=org.apache.log4j.PatternLayout
    13log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n第1行的值INFO,表示输出INFO级以上的日志,如果设成OFF则表示不输出,A1和R是自定义的两种输出方式(可以自定义n种输出方式),其详细内容在后面有定义;
    第3行定义A1是输出到控制台;
    第7行定义R是输出到文件,并且控制文件在指定大小,超过指定大小自动按指定形式创建一个新名称的日志文件;一般是以指定格式的文本输出日志,输出比较快捷,也可以定义HTML格式的日志输出,阅读方便,但稍微有点慢。现在,可以象使用System.out.println一样标识程序输出信息了看一个在程序中应用log4j的简单例子。
    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;
    import org.apache.log4j.SimpleLayout;
    import org.apache.log4j.FileAppender;
    public class simpandfile {
        //获取log4j日志记录器
       static Logger logger = Logger.getLogger(simpandfile.class);
       public static void main(String args[]) {
           //新建一个日志输出样式
          SimpleLayout layout = new SimpleLayout();      FileAppender appender = null;
          try {
               //定义输出文件
             appender = new FileAppender(layout,"output1.txt",false);
          } catch(Exception e) {}      logger.addAppender(appender);
           //设置日志输出等级为DEBUG
          logger.setLevel((Level) Level.DEBUG);
          //以各种等级标识输出信息
          logger.debug("Here is some DEBUG");
          logger.info("Here is some INFO");
          logger.warn("Here is some WARN");
          logger.error("Here is some ERROR");
          logger.fatal("Here is some FATAL");
       }
    }
      

  2.   

    log4j.properties建个文件一摸一样的里面是  log4j.rootLogger=debug, stdout, R
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      # Pattern to output the caller's file name and line number.
      log4j.appender.R=org.apache.log4j.RollingFileAppender
      log4j.appender.R.File=system.log
      log4j.appender.R.MaxFileSize= 100KB
      # Keep one backup file
      log4j.appender.R.MaxBackupIndex=1
      log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
      log4j.appender.R.layout=org.apache.log4j.PatternLayout
      log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
      

  3.   

    system.log 就是日志输出的TET文件了默认下 放在src 下就可以了 
      

  4.   

    MaxBackupIndex的值可以任意设置吗?