You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Gary Gregory (JIRA)" <ji...@apache.org> on 2016/01/18 03:03:39 UTC

[jira] [Comment Edited] (LOG4J2-1257) HTMLLayout output append content tag everytime

    [ https://issues.apache.org/jira/browse/LOG4J2-1257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15104018#comment-15104018 ] 

Gary Gregory edited comment on LOG4J2-1257 at 1/18/16 2:03 AM:
---------------------------------------------------------------

thanks for your reply.I doubt my configuration file have some probrem too.But when I use the same log4j2.xml file in log4j2.3 it is normally.my log4j2.xml as follows:

{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration  strict="true">

	<Properties>
    	<Property name="baseDir">e:/backup/logs/</Property>
  	</Properties>
   
   <Appenders>
   <!-- 
   		对于程序中的debug日志,直接输出到控制台就可以了。而且我们往往也只是关注它在什么位置,看一下输出了什么,是否符合期望(非调试)
   		所以我们输出全部的信息,并且只是关心它的位置,和发生了什么。
    -->
    <Console  name="debug" target="STDOUT">
   		<Layout type="PatternLayout" pattern="%m [%c-%L] [%p]%n"/>
	</Console>
   	
<!--   
	 对于INFO级别的日志,一般是为了在日志中追踪业务相关的数据和逻辑,fileName指定文件的名字
	 filePattern当日志文件的滚动策略为DefaultRolloverStrategy(默认,不配置就是它了),按照filePattern
	 指定的方式存放压缩日志文件。fileName如果指定"/"这表示项目根目录,如:/logs就是存放在项目的工作目录下
 -->
   <RollingFile name="info" type="RollingFile" fileName="${baseDir}/info.txt" filePattern="${baseDir}/$${date:yyyy-MM}/info-%d{MM-dd-yyyy}-%i.log.gz">
	   <Layout type="PatternLayout" pattern="[%d{yyyy-MM-dd HH:mm:ss}] [%c.%M:%L] [%p] %m%n" />
	    <Policies>
        <TimeBasedTriggeringPolicy interval="6" modulate="true"/><!--  interval 指定每过多久触发一次滚动事件,默认1,modulate指定现在时间%internal==0,触发事件例如12,24  --> 
        <SizeBasedTriggeringPolicy size="2 KB"/>
      </Policies>
     <DefaultRolloverStrategy max="7"> <!-- max设置的默认值是7,就是保存文件的最大个数 -->
         <Delete basePath="e:/backup/logs/" maxDepth="2"><!--  log4j-2.5才有的属性 -->
	         <IfFileName glob="*/info-*.log.gz" />
	         <IfLastModified age="10d" /><!--  删除10天以前的 -->
        </Delete>
    </DefaultRolloverStrategy>
	  <filters>
          <ThresholdFilter level="info"/>
      </filters>  
   </RollingFile>
   
   <File name="warn" fileName="${baseDir}/warn.txt">
      <PatternLayout>
        <Pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%c.%M:%L] [%p] %m%n</Pattern>
      </PatternLayout>
      <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
    </File>
   
   
   <File name="error" fileName="${baseDir}/error.txt">
      <PatternLayout>
        <Pattern>[%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c.%M:%L]  %m%n</Pattern>
      </PatternLayout>
      <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
    </File>
    
    <File name="errorh" fileName="${baseDir}/error.html" >
      <HTMLLayout title="freemethod" charset="utf-8" locationinfo="true"/>
      <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
    </File>
  
   </Appenders>
   
<!--    
	 上面的配置相当于描述了要用怎样的模板来装饰日志的输出流(OutputStream),接下来的事情就是决定要
	   用哪一些输出流,log4j好实例化。建议在开发中开启debug就可以了。
   -->
   <Loggers>
	   <root level="debug">
	      <appender-ref ref="debug"/>
	      <appender-ref ref="info"/>
	      <appender-ref ref="warn" />
	      <appender-ref ref="error" />
	      <appender-ref ref="errorh" />
	   </root>
   </Loggers>
</Configuration>
{code}


was (Author: trayvon):
thanks for your reply.I doubt my configuration file have some probrem too.But when I use the same log4j2.xml file in log4j2.3 it is normally.my log4j2.xml as follows:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration  strict="true">

	<Properties>
    	<Property name="baseDir">e:/backup/logs/</Property>
  	</Properties>
   
   <Appenders>
   <!-- 
   		对于程序中的debug日志,直接输出到控制台就可以了。而且我们往往也只是关注它在什么位置,看一下输出了什么,是否符合期望(非调试)
   		所以我们输出全部的信息,并且只是关心它的位置,和发生了什么。
    -->
    <Console  name="debug" target="STDOUT">
   		<Layout type="PatternLayout" pattern="%m [%c-%L] [%p]%n"/>
	</Console>
   	
<!--   
	 对于INFO级别的日志,一般是为了在日志中追踪业务相关的数据和逻辑,fileName指定文件的名字
	 filePattern当日志文件的滚动策略为DefaultRolloverStrategy(默认,不配置就是它了),按照filePattern
	 指定的方式存放压缩日志文件。fileName如果指定"/"这表示项目根目录,如:/logs就是存放在项目的工作目录下
 -->
   <RollingFile name="info" type="RollingFile" fileName="${baseDir}/info.txt" filePattern="${baseDir}/$${date:yyyy-MM}/info-%d{MM-dd-yyyy}-%i.log.gz">
	   <Layout type="PatternLayout" pattern="[%d{yyyy-MM-dd HH:mm:ss}] [%c.%M:%L] [%p] %m%n" />
	    <Policies>
        <TimeBasedTriggeringPolicy interval="6" modulate="true"/><!--  interval 指定每过多久触发一次滚动事件,默认1,modulate指定现在时间%internal==0,触发事件例如12,24  --> 
        <SizeBasedTriggeringPolicy size="2 KB"/>
      </Policies>
     <DefaultRolloverStrategy max="7"> <!-- max设置的默认值是7,就是保存文件的最大个数 -->
         <Delete basePath="e:/backup/logs/" maxDepth="2"><!--  log4j-2.5才有的属性 -->
	         <IfFileName glob="*/info-*.log.gz" />
	         <IfLastModified age="10d" /><!--  删除10天以前的 -->
        </Delete>
    </DefaultRolloverStrategy>
	  <filters>
          <ThresholdFilter level="info"/>
      </filters>  
   </RollingFile>
   
   <File name="warn" fileName="${baseDir}/warn.txt">
      <PatternLayout>
        <Pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%c.%M:%L] [%p] %m%n</Pattern>
      </PatternLayout>
      <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
    </File>
   
   
   <File name="error" fileName="${baseDir}/error.txt">
      <PatternLayout>
        <Pattern>[%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c.%M:%L]  %m%n</Pattern>
      </PatternLayout>
      <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
    </File>
    
    <File name="errorh" fileName="${baseDir}/error.html" >
      <HTMLLayout title="freemethod" charset="utf-8" locationinfo="true"/>
      <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
    </File>
  
   </Appenders>
   
<!--    
	 上面的配置相当于描述了要用怎样的模板来装饰日志的输出流(OutputStream),接下来的事情就是决定要
	   用哪一些输出流,log4j好实例化。建议在开发中开启debug就可以了。
   -->
   <Loggers>
	   <root level="debug">
	      <appender-ref ref="debug"/>
	      <appender-ref ref="info"/>
	      <appender-ref ref="warn" />
	      <appender-ref ref="error" />
	      <appender-ref ref="errorh" />
	   </root>
   </Loggers>
</Configuration>


> HTMLLayout output append content tag </body></html> everytime
> -------------------------------------------------------------
>
>                 Key: LOG4J2-1257
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1257
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Layouts
>    Affects Versions: 2.5
>         Environment: windows7 log4j2.5
>            Reporter: trayvontang
>              Labels: easyfix
>
> When use HTMLLayout append log content to the html file more than one,the extra end tag </body></html> appened.so the html style is mess.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org