log4j不每天生成日志,配置了DailyRollingFileAppender但是不起作用

时间:2021-11-06 08:14:42
我用MyEclipse工具,部署的一个工程A,每天也能产生日志,不会昨天的日志被今天的覆盖。不使用MyEclipse的那个Tomcat。单独解压一个Tomcat出来,部署上我的工程A,然后运行startup.bat。也是能每天产生日志的。(可以调windows的时间来快速看效果)

但是部署到某些Tomcat就不行了,一定是昨天的日志被今天覆盖。经历了很久,我发现了,当Tomcat的server.xml中的<host>标签内若配置了<Context>标签,就会出现这种情况!!!


有什么好的解决办法吗???????求救啊

9 个解决方案

#1


该回复于2012-03-09 16:02:34被版主删除

#2


<?xml version="1.0" encoding="GBK" ?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
  threshold="debug">

  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ABSOLUTE} (%-5p) [%t] [%c{1}] %m%n" />
    </layout>
  </appender>

  <appender name="ASYNC_CONSOLE" class="org.apache.log4j.AsyncAppender">
    <param name="BufferSize" value="8192" />
    <appender-ref ref="CONSOLE" />
  </appender>

  <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="../logs/hornetq-master.log" />
    <param name="Append" value="true" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ABSOLUTE} [%-5p] [%t] [%c{1}] %m%n" />
    </layout>
  </appender>

  <root>
    <level value="INFO" />
    <appender-ref ref="FILE" />
  </root>
</log4j:configuration>


看看这个行不?把文件输出路径改一下

#3


贴一下log4j.properties

#4


log4j.rootLogger= INFO,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${catalina.base}/logs/nt-pa.log
log4j.appender.R.DatePattern='_'dd'.log'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout


这是额的配置   以月份进行输出日志   只有重复到这个月中的某一天才会进行覆盖i


不过二楼的那种写法偶没用过      学习   呵呵呵

#5


引用 2 楼 bao110908 的回复:
XML code
<?xml version="1.0" encoding="GBK" ?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
  threshold="debug">

  <append……



膜拜新的方法  学习       

#6


http://duanni.iteye.com/blog/177271
楼楼看这个。

#7


确实是比较奇怪。
不过你的路径,不要写死用相对路径。
不行的话,试试logback

#8


后来如何解决了?求解

#9


奇怪,那你的 Context  又有什么特别 之外呢?又有多少个 log4j.jar 在 tomcat 上放着呢?

#1


该回复于2012-03-09 16:02:34被版主删除

#2


<?xml version="1.0" encoding="GBK" ?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
  threshold="debug">

  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ABSOLUTE} (%-5p) [%t] [%c{1}] %m%n" />
    </layout>
  </appender>

  <appender name="ASYNC_CONSOLE" class="org.apache.log4j.AsyncAppender">
    <param name="BufferSize" value="8192" />
    <appender-ref ref="CONSOLE" />
  </appender>

  <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="../logs/hornetq-master.log" />
    <param name="Append" value="true" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ABSOLUTE} [%-5p] [%t] [%c{1}] %m%n" />
    </layout>
  </appender>

  <root>
    <level value="INFO" />
    <appender-ref ref="FILE" />
  </root>
</log4j:configuration>


看看这个行不?把文件输出路径改一下

#3


贴一下log4j.properties

#4


log4j.rootLogger= INFO,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${catalina.base}/logs/nt-pa.log
log4j.appender.R.DatePattern='_'dd'.log'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout


这是额的配置   以月份进行输出日志   只有重复到这个月中的某一天才会进行覆盖i


不过二楼的那种写法偶没用过      学习   呵呵呵

#5


引用 2 楼 bao110908 的回复:
XML code
<?xml version="1.0" encoding="GBK" ?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
  threshold="debug">

  <append……



膜拜新的方法  学习       

#6


http://duanni.iteye.com/blog/177271
楼楼看这个。

#7


确实是比较奇怪。
不过你的路径,不要写死用相对路径。
不行的话,试试logback

#8


后来如何解决了?求解

#9


奇怪,那你的 Context  又有什么特别 之外呢?又有多少个 log4j.jar 在 tomcat 上放着呢?