log4j与内存问题:在linux服务器中打印日志时内存使用会越来越高,帮忙解决下
最近在linux 系统中发现一个问题,xml配置情况:
  <appender name="myFile" class="org.apache.log4j.RollingFileAppender">  
    <param name="File" value="D:/logs/std_error.log" /><!-- 设置日志输出文件名 -->  
    <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
    <param name="Append" value="true" />  
    <param name="MaxFileSize" value="30000000"/>
    <param name="MaxBackupIndex" value="10" />
    <layout class="org.apache.log4j.PatternLayout">  
       <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />  
    </layout>  
  </appender>linux系统中运行着应用程序,结果在打印日志时,譬如有std_error.log std_error.log.1 std_error.log.2 三个文件(.1和.2 都是30MB),这是通过top命令看到内存使用比如为76000kb。把这两个文件(std_error.log.1/std_error.log.2)给删除拉,系统又会多出60MB的空闲空间,变成16000kb。
同样的系统中运行着应用程序,也有着std_error.log std_error.log.1 std_error.log.2 三个文件,内存使用76000kb,现在直接重启服务器,重启后应用程序也会自行启动,但是这是内存使用很小,只有568kb。也就是说感觉好象这个日志文件跟内存绑定到一起拉,是不是log4j每重新打印一个文件都不会清空缓存。也就是这个问题导致服务器内存使用会越来越高,问题严重啊遇见过这个问题的精英们,告诉下这个问题怎么解决的!!!