log4j.xml配置实现

log4j.xml配置实现先写一个Servlet的listener,用来监听服务启动,并自动解析log4j.xml文件代码如下:import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.apache.log4j.LogManager;import org.apache.log4j.PropertyConfigurator;import org.apache.log4j.xml.DOMConfigurator;public class Log4jConfigListener implements ServletContextListener{public static final String CONFIG_LOCATION_PARAM = "log4jConfigLocation";public static final String XML_FILE_EXTENSION = ".xml";public void contextDestroyed(ServletContextEvent event) {// TODO Auto-generated method stubLogManager.shutdown();}public void contextInitialized(ServletContextEvent event) {// TODO Auto-generated method stubString location = event.getServletContext().getInitParameter(CONFIG_LOCATION_PARAM); if (location != null) {if (!location.startsWith("/")) {location = "/" + location;}location = event.getServletContext().getRealPath(location);//如果是xml结尾就用DOM解析,否则就用properties解析if (location.toLowerCase().endsWith(XML_FILE_EXTENSION)) {DOMConfigurator.configure(location);}else {PropertyConfigurator.configure(location);}}}}再写个util类,用来生成所要的不同类型的日志代码如下:package com.zhaopin.util;import org.apache.log4j.Logger;public class Log4jUtil {public static Logger getSQLLogger(){return Logger.getLogger("sql");}public static Logger getBusinessLogger(){return Logger.getLogger("business");}public static Logger getSimpleErrorLogger(){return Logger.getLogger("simpleError");}public static Logger getNormalErrorLogger(){return Logger.getLogger("normalError");}}下面开始写配置文件,先要在web.xml下添加信息:<context-param><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/Log4j.xml</param-value></context-param><!-- 加载log4j配置文件--><listener><listener-class>Log4jConfigListener</listener-class></listener>最重要的log4j.xml的配置信息如下:<?xml version="1.0" encoding="GBK"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="/log4j/"><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="target" value="System.out"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/></layout></appender><!-- SQL类日志--><appender name="sql" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.sql.log"/><param name="Append" value="true"/><!-- name="DatePattern"配置这条信息是让日志每天自动生成,名字尾部追加日期格式,第一天生成的日志需第二天才能看到log可以通过更改系统时间来看日志的输出--><param name="DatePattern" value="'.'yyyy-MM-dd"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/></layout></appender><!-- 业务类日志--><appender name="business" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.business.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 [%c] (%C:%L) - %m%n"/></layout></appender><!-- 不带执行轨迹错误日志--><appender name="simpleError" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.error.simple.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 [%c] (%C:%L) - %m%n"/></layout></appender><!-- 带执行轨迹错误日志--><appender name="normalError" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="/usr/local/tomcat/logs/testlog4j.error.normal.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 [%c] (%C:%L) - %m%n"/></layout></appender><logger name="sql" additivity="true"><priority value="info"/><appender-ref ref="sql"/></logger><logger name="business" additivity="true"><priority value="info"/><appender-ref ref="simpleError"/></logger><logger name="simpleError" additivity="true"><priority value="info"/><appender-ref ref="simpleError"/></logger><logger name="normalError" additivity="true"><priority value="info"/><appender-ref ref="normalError"/></logger><root><appender-ref ref="STDOUT"/><priority value="info"/></root></log4j:configuration>在程序中应用时需要编写如下代码:Log4jUtil.getBusinessLogger().info("message!");。

合集下载

log4j配置文件模板大全

log4j配置文件模板大全

log4j配置⽂件模板⼤全log4j.xml ⽂件配置模板:1. <?xml version="1.0" encoding="UTF-8"?>2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">3.4. <log4j:configuration debug="true" xmlns:log4j='/log4j/' >5.6. <!-- ========================== ⾃定义输出格式说明================================ -->7. <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->8. <!-- %r 输出⾃应⽤启动到输出该log信息耗费的毫秒数 -->9. <!-- %c 输出所属的类⽬,通常就是所在类的全名 -->10. <!-- %t 输出产⽣该⽇志事件的线程名 -->11. <!-- %n 输出⼀个回车换⾏符,Windows平台为“/r/n”,Unix平台为“/n” -->12. <!-- %d 输出⽇志时间点的⽇期或时间,默认格式为ISO8601,也可以在其后指定格式,⽐如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10⽉18⽇ 22:10:28,921 -->13. <!-- %l 输出⽇志事件的发⽣位置,包括类⽬名、发⽣的线程,以及在代码中的⾏数。

举例:Testlo4.main(TestLog4.java:10) -->14. <!-- ========================================================================== -->15.1. <!-- ========================== 输出⽅式说明================================ -->2. <!-- Log4j提供的appender有以下⼏种: -->3. <!-- org.apache.log4j.ConsoleAppender(控制台), -->4. <!-- org.apache.log4j.FileAppender(⽂件), -->5. <!-- org.apache.log4j.DailyRollingFileAppender(每天产⽣⼀个⽇志⽂件), -->6. <!-- org.apache.log4j.RollingFileAppender(⽂件⼤⼩到达指定尺⼨的时候产⽣⼀个新的⽂件), -->7. <!-- org.apache.log4j.WriterAppender(将⽇志信息以流格式发送到任意指定的地⽅) -->8. <!-- ========================================================================== -->9.10. <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">11. <!-- <param name="Target" value="System.out"/> -->12. <layout class="org.apache.log4j.PatternLayout">13. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>14. </layout>15. <!-- <filter class="org.apache.log4j.varia.LevelRangeFilter">16. <param name="LevelMin" value="DEBUG"/>17. <param name="LevelMax" value="DEBUG"/>18. </filter> -->19. </appender>20. <!-- output the debug -->21. <!-- <appender name="log4jDebug" class="org.apache.log4j.DailyRollingFileAppender">22. <param name="File" value="log_"/>23. <param name="MaxFileSize" value="KB"/>24. <param name="MaxBackupIndex" value="2"/> -->25. <appender name="log4jDebug" class="org.apache.log4j.rolling.RollingFileAppender">26. <param name="Append" value="true"/>27. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">28. <param name="FileNamePattern" value="./log/log_%d{yyyy-MM-dd}.log" />29. </rollingPolicy>30. <layout class="org.apache.log4j.PatternLayout">31. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>32. </layout>33. <filter class="org.apache.log4j.varia.LevelRangeFilter">34. <param name="LevelMin" value="DEBUG"/>35. <param name="LevelMax" value="DEBUG"/>36. </filter>37. </appender>38. <!-- <appender name="log4jInfo" class="org.apache.log4j.DailyRollingFileAppender">39. <param name="File" value="log_"/>40. <param name="DatePattern" value="'.log'yyyy-MM-dd"/>41. <param name="Append" value="true"/>42. <param name="MaxFileSize" value="5KB"/>43. <param name="MaxBackupIndex" value="2"/> -->44. <appender name="log4jInfo" class="org.apache.log4j.rolling.RollingFileAppender">45. <param name="Append" value="true"/>46. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">47. <param name="FileNamePattern" value="./log/log_%d{yyyy-MM-dd}.log" />48. </rollingPolicy>49. <layout class="org.apache.log4j.PatternLayout">50. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>51. </layout>52. <filter class="org.apache.log4j.varia.LevelRangeFilter">53. <param name="LevelMin" value="INFO"/>54. <param name="LevelMax" value="INFO"/>55. </filter>56. </appender>57. <!-- <appender name="log4jWarn" class="org.apache.log4j.DailyRollingFileAppender">58. <param name="File" value="/log_"/>59. <param name="DatePattern" value="'.log'yyyy-MM-dd"/>60. <param name="Append" value="true"/>61. <param name="MaxFileSize" value="5KB"/>62. <param name="MaxBackupIndex" value="2"/> -->63. <appender name="log4jWarn" class="org.apache.log4j.rolling.RollingFileAppender">64. <param name="Append" value="true"/>65. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">66. <param name="FileNamePattern" value="./log/log_%d{yyyy-MM-dd}.log" />67. </rollingPolicy>68. <layout class="org.apache.log4j.PatternLayout">69. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l ]%n%p:%m%n"/>70. </layout>71. <filter class="org.apache.log4j.varia.LevelRangeFilter">72. <param name="LevelMin" value="WARN"/>73. <param name="LevelMax" value="WARN"/>74. </filter>75. </appender>76. <!-- <appender name="log4jError" class="org.apache.log4j.DailyRollingFileAppender"> -->77. <appender name="log4jError" class="org.apache.log4j.rolling.RollingFileAppender">78. <!-- <param name="File" value="/error_"/>79. <param name="DatePattern" value="'.log'yyyy-MM-dd"/> -->80. <param name="Append" value="true"/>81. <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">82. <param name="FileNamePattern" value="./log/error_%d{yyyy-MM-dd}.log" />83. </rollingPolicy>84.85. <!-- <param name="MaxFileSize" value="5KB"/> -->86. <!-- <param name="MaxBackupIndex" value="2"/> -->87. <layout class="org.apache.log4j.PatternLayout">88. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c Method: %l]%n%p:%m%n"/>89. </layout>90. <filter class="org.apache.log4j.varia.LevelRangeFilter">91. <param name="LevelMin" value="ERROR"/>92. <param name="LevelMax" value="ERROR"/>93. </filter>94. </appender>95. <!--通过<category></category>的定义可以将各个包中的类⽇志输出到不同的⽇志⽂件中-->96. <!-- <category name="com.gzy">97. <priority value="debug" />98. <appender-ref ref="log4jTestLogInfo" />99. <appender-ref ref="log4jTestDebug" />100. </category> -->101. <appender name="MAIL"102. class=".SMTPAppender">103. <param name="threshold" value="debug" />104. <!-- ⽇志的错误级别105. <param name="threshold" value="error"/>106. -->107. <!-- 缓存⽂件⼤⼩,⽇志达到512K时发送Email -->108. <param name="BufferSize" value="512" /><!-- 单位K -->109. <param name="From" value="test@" />110. <param name="SMTPHost" value="" />111. <param name="Subject" value="juyee-log4jMessage" />112. <param name="To" value="test@" />113. <param name="SMTPUsername" value="test" />114. <param name="SMTPPassword" value="test" />115. <layout class="org.apache.log4j.PatternLayout">116. <param name="ConversionPattern"117. value="%-d{yyyy-MM-dd HH:mm:ss.SSS a} [%p]-[%c] %m%n" />118. </layout>119. </appender>120.121.122. <root>123. <priority value="debug"/>124. <appender-ref ref="CONSOLE" />125. <appender-ref ref="log4jDebug" />126. <appender-ref ref="log4jInfo" />127. <appender-ref ref="log4jWarn" />128. <appender-ref ref="log4jError" />129. <!-- <appender-ref ref="MAIL" /> -->130. </root>131. </log4j:configuration>log4j.properties⽂件配置模板:1. # priority :debug<info<warn<error2.#you cannot specify every priority with different file for log4j3.log4j.rootLogger=debug,stdout,info,debug,warn,error4.5.#console6.log4j.appender.stdout=org.apache.log4j.ConsoleAppender7.yout=org.apache.log4j.PatternLayout8.yout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss a}]:%p %l%m%n9.#info log10.=info11.=org.apache.log4j.DailyRollingFileAppender12..DatePattern='_'yyyy-MM-dd'.log'13..File=./src/com/hp/log/info.log14..Append=true15..Threshold=INFO16.yout=org.apache.log4j.PatternLayout17.yout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n 18.#debug log19.log4j.logger.debug=debug20.log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender21.log4j.appender.debug.DatePattern='_'yyyy-MM-dd'.log'22.log4j.appender.debug.File=./src/com/hp/log/debug.log23.log4j.appender.debug.Append=true24.log4j.appender.debug.Threshold=DEBUG25.yout=org.apache.log4j.PatternLayout26.yout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n 27.#warn log28.log4j.logger.warn=warn29.log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender30.log4j.appender.warn.DatePattern='_'yyyy-MM-dd'.log'31.log4j.appender.warn.File=./src/com/hp/log/warn.log32.log4j.appender.warn.Append=true33.log4j.appender.warn.Threshold=WARN34.yout=org.apache.log4j.PatternLayout35.yout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n 36.#error37.log4j.logger.error=error38.log4j.appender.error = org.apache.log4j.DailyRollingFileAppender39.log4j.appender.error.DatePattern='_'yyyy-MM-dd'.log'40.log4j.appender.error.File = ./src/com/hp/log/error.log41.log4j.appender.error.Append = true42.log4j.appender.error.Threshold = ERROR43.yout = org.apache.log4j.PatternLayout44.yout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n。

Log4j优化(一)扩展Log4j来实现性能优化的异步日志收集器

Log4j优化(一)扩展Log4j来实现性能优化的异步日志收集器

Log4j优化(一)扩展Log4j来实现性能优化的异步日志收集器日志收集在互联网企业尤其是大数据时代是一件非常重要的事情,日志记录着用户行为和系统行为,是一种重要的数据来源。

Log4j是Java应用程序使用的最多的一种日志收集工作。

目前大量的Java应用程序都使用着Lo4j 1.2.X版本,Log4j 1.X版本饱受诟病的原因是使用了大量的锁,在高并发的情况下影响了系统的性能。

这篇简单提供一种思路,说说如何扩展一下Log4j,提升一下Log4j的性能。

网上有很多分析Log4j源码的文章,这里不重复说了,只简单分析一下最重要的几个组件。

先看一下Log4j的配置文件log4j.xml[java] view plain copy1.<?xml version="1.0" encoding="UTF-8" ?>2.<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">3.4.<log4j:configuration xmlns:log4j="/log4j/">5.<appender name="rootAppender" class="org.apache.log 4j.DailyRollingFileAppender">6.<param name="File" value="test.log" />7.<param name="DatePattern" value="'.'yyyy-MM-dd" />8.<layout class="org.apache.log4j.PatternLayout">9.<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c{1}:%L - %m%n" />10.</layout>11.</appender>12.<logger name="com.test" additivity="false">13.<level value="debug" />14.<appender-ref ref="rootAppender" />15.</logger>16.<root>17.<level value="debug" />18.<appender-ref ref="rootAppender" />19.</root>20.</log4j:configuration>从log4j.xml里面我们就可以看到Log4j最主要的几个组件1. Logger,表示日志收集器,包含了各种Level下收集日志的方法,比如debug, info, error等。

Log4j2的日志配置文件,log4j2.xml文件的配置(实现控制台输出,各级别分别文件。。。

Log4j2的日志配置文件,log4j2.xml文件的配置(实现控制台输出,各级别分别文件。。。

Log4j2的⽇志配置⽂件,log4j2.xml⽂件的配置(实现控制台输出,各级别分别⽂件。

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "/2002/xmlspec/dtd/2.10/xmlspec.dtd"><!-- status : 这个⽤于设置log4j2⾃⾝内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出 monitorInterval: Log4j能够⾃动检测修改配置⽂件和重新配置本⾝, 设置间隔秒数。

注:本配置⽂件的⽬标是将不同级别的⽇志输出到不同⽂件,最⼤2MB⼀个⽂件,⽂件数据达到最⼤值时,旧数据会被压缩并放进指定⽂件夹 --><Configuration status="WARN" monitorInterval="600"><Properties><!-- 配置⽇志⽂件输出⽬录,此配置将⽇志输出到tomcat根⽬录下的指定⽂件夹 --><Property name="LOG_HOME">${sys:catalina.home}/WebAppLogs/HHServices</Property></Properties><Appenders><!-- 优先级从⾼到低分别是 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL --><!-- 单词解释: Match:匹配 DENY:拒绝 Mismatch:不匹配 ACCEPT:接受 --><!-- DENY,⽇志将⽴即被抛弃不再经过其他过滤器; NEUTRAL,有序列表⾥的下个过滤器过接着处理⽇志; ACCEPT,⽇志会被⽴即处理,不再经过剩余过滤器。

Log4j配置最全说明

Log4j配置最全说明

Log4j配置最全说明1. log4j 的配置文件Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是Java 特性文件 lg4j.properties (键 = 值)。

1.1. log4j configuration scripts in properties formatlg4j.properties 文件作为作为常用的配置文件的方法如下:配置根 LoggerLogger 负责处理日志记录的大部分操作。

其语法为:log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中, level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、WARN 、 INFO 、 DEBUG 、 ALL 或者自定义的级别。

Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR 、 WARN 、INFO 、 DEBUG 。

通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

比如在这里定义了 INFO 级别,只有等于及高于这个级别的才进行处理,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来。

ALL: 打印所有的日志, OFF :关闭所有的日志输出。

appenderName 就是指定日志信息输出到哪个地方。

可同时指定多个输出目的地。

Appender配置日志信息输出目的地 Appender 负责控制日志记录操作的输出。

其语法为:log4j.appender.appenderName =.of.appender.classlog4j.appender.appenderName.option1 = value1log4j.appender.appenderName.optionN = valueN其中, Log4j 提供的 appender 有以下几种:org.apache.log4j.ConsoleAppender (控制台),org.apache.log4j.FileAppender (文件),org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件),org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),可通过log4j.appender.R.MaxFileSize=100KB 设置文件大小,还可通过log4j.appender.R.MaxBackupIndex=1 设置为保存一个备份文件。

打印ibatis的SQL日志-通过log4j配置

打印ibatis的SQL日志-通过log4j配置

打印ibatis的SQL⽇志-通过log4j配置第⼀种:log4j.xml⽂件的1. <appender name="IBatis" class="org.apache.log4j.ConsoleAppender">2. <layout class="org.apache.log4j.PatternLayout">3. <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />4. </layout>5. <filter class="org.apache.log4j.varia.LevelRangeFilter">6. <param name="LevelMin" value="DEBUG" />7. <param name="LevelMax" value="DEBUG" />8. </filter>9. </appender>10.11. <logger name="com.ibatis" additivity="true">12. <level value="DEBUG" />13. </logger>14. <logger name="java.sql.Connection" additivity="true">15. <level value="DEBUG" />16. </logger>17. <logger name="java.sql.Statement" additivity="true">18. <level value="DEBUG" />19. </logger>20. <logger name="java.sql.PreparedStatement" additivity="true">21. <level value="DEBUG" />22. <appender-ref ref="IBatis" />23. </logger>24. <logger name="java.sql.ResultSet" additivity="true">25. <level value="DEBUG" />26. <appender-ref ref="IBatis" />27. </logger>第⼆种:log4j.properties1. log4j.appender.stdout=org.apache.log4j.ConsoleAppender2. yout=org.apache.log4j.PatternLayout3. yout.ConversionPattern=%d %p [%c] - %m%n4.5.6. .ibatis=debug7. mon.jdbc.SimpleDataSource=debug8. mon.jdbc.ScriptRunner=debug9. .ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug10. log4j.logger.java.sql.Connection=debug11. log4j.logger.java.sql.Statement=debug12. log4j.logger.java.sql.PreparedStatement=debug,stdout。

springlog4j2.xml配置文件详解

springlog4j2.xml配置文件详解

springlog4j2.xml配置⽂件详解⼀、log4j2介绍 log4j 2.x版本不再⽀持像1.x中的.properties后缀的⽂件配置⽅式,2.x版本配置⽂件后缀名只能为".xml",".json"或者".jsn"。

配置⽂件的格式:log2j配置⽂件可以是xml格式的,也可以是json格式的。

配置⽂件的位置:log4j2默认会在classpath⽬录下寻找log4j2.xml、log4j.json、log4j.jsn等名称的⽂件。

系统选择配置⽂件的优先级(从先到后)如下: (1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的⽂件. (2).classpath下的名为log4j2-test.xml的⽂件. (3).classpath下名为log4j2.json 或者log4j2.jsn的⽂件. (4).classpath下名为log4j2.xml的⽂件. 我们⼀般默认使⽤log4j2.xml进⾏命名。

⼆、配置⽂件节点解析 (1).根节点Configuration有两个属性:status和monitorinterval,有两个⼦节点:Appenders和Loggers(表明可以定义多个Appender和Logger)。

status⽤来指定log4j本⾝的打印⽇志的级别。

monitorinterval⽤于指定log4j⾃动重新配置的监测间隔时间,单位是s,最⼩是5s。

(2).Appenders节点,常见的有三种⼦节点:Console、RollingFile、File。

Console节点⽤来定义输出到控制台的Appender。

name:指定Appender的名字. target:SYSTEM_OUT 或 SYSTEM_ERR,⼀般只设置默认:SYSTEM_OUT。

PatternLayout:输出格式,不设置默认为:%m%n。

Maven项目配置log4j2.xml

Maven项⽬配置log4j2.xmllog4j2相对于log4j 1.x有了脱胎换⾻的变化,其官⽹宣称的优势有多线程下10⼏倍于log4j 1.x和logback的⾼吞吐量、可配置的审计型⽇志、基于插件架构的各种灵活配置等。

以下是log4j2在maven 项⽬中的配置步骤:1、在pom.xml⽂件中引⼊log4j依赖<!-- https:///artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.10.0</version></dependency><!-- https:///artifact/org.apache.logging.log4j/log4j-api --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.10.0</version></dependency><!-- https:///artifact/org.apache.logging.log4j/log4j-web --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>2.10.0</version></dependency><!-- https:///artifact/com.lmax/disruptor --><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.4.1</version></dependency>2、配置log4j2.xml⽂件放置到src/main/resources⽬录下<?xml version="1.0" encoding="UTF-8"?><!--status : 这个⽤于设置log4j2⾃⾝内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出monitorInterval : Log4j能够⾃动检测修改配置⽂件和重新配置本⾝, 设置间隔秒数。

log4j2.xml 标准配置写法

一、概述log4j2是Apache Software Foundation的一个开源日志框架,广泛应用于Java应用程序的日志记录和管理。

在使用log4j2时,通常需要编写log4j2.xml文件进行配置。

本文将介绍log4j2.xml标准配置的写法,帮助读者更加有效地使用log4j2进行日志记录和管理。

二、log4j2.xml文件概述1. log4j2.xml是log4j2的配置文件,用于定义日志记录器、日志级别、输出目的地等配置信息。

2. log4j2.xml采用XML格式进行配置,通过定义各种元素和属性来实现对log4j2框架的配置和定制。

三、log4j2.xml标准配置写法在编写log4j2.xml文件时,可以按照以下标准配置进行操作:1. 配置根节点```xml<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="30"><!-- 配置日志级别、Appenders等信息 --></Configuration>```其中,根节点<Configuration>包含了两个属性:status和monitorInterval。

status属性用于设置全局日志级别,monitorInterval属性用于指定log4j2监视配置文件变化的时间间隔。

2. 配置日志级别```xml<Loggers><Root level="debug"><AppenderRef ref="Console"/><AppenderRef ref="File"/></Root></Loggers>```在<Loggers>节点下,可以通过<Root>节点配置全局日志级别,并通过<AppenderRef>节点引用Appenders进行输出。

log4j2.xml配置

log4j2.xml配置log4j1.*版本在打印日志的时候不支持占位符,在打印日志的时候需要拼接起来。

所以我就讲log4j版本改为 2.*,log4j2.*版本支持占位符,在代码看上去就美观了很多。

首先下载log4j包地址:/log4j/2.x/download.html将log4j-api-2.*.jar、log4j-core-2.*.jar包放入lib文件夹下创建配置文件log4j 2.*有xml、json配置两种文件方式,并没有1.*版本的properties配置方式下面就以xml配置方式为例在src下创建一个log4j2.xml文件,注意是log4j2.xml内容如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<configuration status="off">3.<Properties>4.<Property name="LOG_HOME">${sys:catalina.home}/log s/AppNetAgeService</Property>5.<Property name="LOG_NAME">log.txt</Property>6.</Properties>7.<appenders>8.<Console name="Console" target="SYSTEM_OUT">9.<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n"/>10.</Console>11.<RollingFile name="log" fileName="${LOG_HOME}/${ LOG_NAME}" filePattern="${LOG_HOME}/${LOG_NAME}.%d{yyy y-MM-dd}" append="true">12.<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread][%file:%line] - %msg%n" />13.<Policies>14.<TimeBasedTriggeringPolicy modulate="true" interval ="1" />15.</Policies>16.<DefaultRolloverStrategy max="180" />17.</RollingFile>18.</appenders>19.<loggers>20.<root level="DEBUG">21.<appender-ref ref="Console"/>22.<appender-ref ref="log"/>23.</root>24.</loggers>25.</configuration>注意事项:1、<root level="DEBUG"></root>这个标签中level等级,、log4j优先级分别为FATAL、ERROR、WARN、INFO、DEBUG, 如果level的值设置为ERROR,那么只有FATAL、ERROR等级的日志才会打印2、 <Property name="LOG_HOME">${sys:catalina.home}/logs/AppNetAgeSer vice</Property>,1.*版本中获取tomcat路径是${catalina.home},log4j2.*版本中获取tomcat路径是${sys:catalina.home}3、要在<root>标签中添加<appender-ref ref="Console"/>,<appender-ref ref="log"/>才能在控制台、和文件中打印日志4、RollingFile标签参数说明:4.1:、append这个参数是是否将日志追加的方式打印,如果为false时,tomcat重新后,log.txt这里原有的日志就会清空,如果为true时,tomcat重启后,log.txt日志不会清空4.2、TimeBasedTriggeringPolicy标签的interval属性是每天生成一个日志文件,RollingFile标签的filePttern属性是备份文件的格式。

log4j2.xml conversionpattern参数

log4j2.xml conversionpattern参数在 log4j2.xml 文件中,conversionPattern 参数是用于定义日志消息输出格式的配置项。

这个参数的具体设置取决于你希望日志的输出格式是怎样的。

conversionPattern 使用模式字符串(pattern string)来定义输出格式中的占位符和文本。

以下是一些常见的 conversionPattern 占位符和示例:%d:输出日期和时间。

%d{yyyy-MM-dd HH:mm:ss}:输出格式为 "年-月-日时:分:秒"。

%p:输出日志级别。

%p:输出日志级别(INFO、DEBUG、WARN、ERROR等)。

%c:输出日志记录器的名称。

%c:输出完整的类名。

%m:输出日志消息。

%m:输出实际的日志消息。

%n:输出平台特定的换行符。

%n:换行。

%t:输出线程名称。

%t:输出线程名称。

%r:输出自应用启动以来的时间(以毫秒为单位)。

%r:输出自应用启动以来的毫秒数。

%C:输出日志记录器所在的类的简单名称。

%C:输出简化的类名。

%F:输出产生日志记录事件的文件的名称。

%F:输出文件名。

%L:输出产生日志记录事件的代码所在的行号。

%L:输出行号。

%M:输出产生日志记录事件的方法名。

%M:输出方法名。

一个完整的 conversionPattern 可能看起来像这样:<PatternLayout><Pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] %C{1}.%M(%F:%L) - %m%n</Pattern></PatternLayout>这个示例的输出格式为 "年-月-日时:分:秒 [日志级别] 类名.方法名(文件名:行号) - 日志消息"。

你可以根据需要自定义conversionPattern 以满足你的日志输出格式需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档