如题:
log4j.xml的内容如下<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d %x %-5p %m%n"/>
  </layout>
  </appender><appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
   <param name="File" value="batchprint_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="%d %p [%c] - %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="batchprint_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="%d %x %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="batchprint_warn.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="%d %x %-5p %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="batchprint_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="%d %p [%c] - %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>
在调试模式下是可以写log的
请问谁有想法可以跟我分享一下,谢谢
我本来想 <param name="File" value="batchprint_warn.log"/>
在上面的代码中指定路径的
但是老大说希望是由程序自己获取

解决方案 »

  1.   

    没人回答啊?
    我想知道能不能对这个log4j.xml进行写操作
       <param   name="File"   value="batchprint_info.log"/> 
    比如以上的value是可以根据自己需要去改动并且把它保存回去呢
    请问谁做过这个,可以出来讨论 一下,谢谢
      

  2.   

    没弄过xml格式的
    用的log4j.properties文件你们老大说的由程序获取什么意思??难道在程序的另一个地方指定路径然后获取过来?
      

  3.   

    try {
    logger.addAppender( 
    new DailyRollingFileAppender(layout,logFile,"yyyy-mm-dd")); 
    logger.error("file created!");
    // logger.}
    }  catch(IOException e) {
            System.err.println("setFile(null, false) call failed.");
            e.printStackTrace();
          }楼主是不是这个意思?log4j.xml应该是你在加载的时候一次性载入的,如果你更改了log4j.xml的话(无论是通过程序or手工),估计要重启应用才有效DailyRollingFileAppender这东东可以指定文件路径的
      

  4.   

    tjxjj 
    幻天 
    等 级:
     发表于:2007-12-13 18:26:304楼 得分:0 
    try   { 
    logger.addAppender(   
    new   DailyRollingFileAppender(layout,logFile,"yyyy-mm-dd"));   
    logger.error("file   created!"); 
    //   logger.} 
    }     catch(IOException   e)   { 
                    System.err.println("setFile(null,   false)   call   failed."); 
                    e.printStackTrace(); 
                } 楼主是不是这个意思? log4j.xml应该是你在加载的时候一次性载入的,如果你更改了log4j.xml的话(无论是通过程序or手工),估计要重启应用才有效 DailyRollingFileAppender这东东可以指定文件路径的 
     
    请问我能不能实现这样的效果:
    第一,把log.xml初始化
    第二,在程序中能够对log.xml的某些value进行修改
      

  5.   

    那你可以通过程序读写xml文件的方式来配路径啊专门写一个类,当程序要写日志的时候去xml文件里读取路径(效率不太高)初始化的话,在web.xml里配置初始化参数,运行一下就好了
      

  6.   

    想在程序的运行过程中动态的改变LOG4J中的LOG地址应该是不可能实现的,每次都需要重新启动一下服务/应用的。