Skip to content

Instantly share code, notes, and snippets.

@AnMokoto
Forked from evil0th/log4j2.xml
Created August 26, 2021 08:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AnMokoto/ebbf4db1f617e03e139218209107ee3c to your computer and use it in GitHub Desktop.
Save AnMokoto/ebbf4db1f617e03e139218209107ee3c to your computer and use it in GitHub Desktop.
Log4j2配置(控制台颜色参照springboot配置)
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<Properties>
<Property name="LOG_HOME">${sys:user.home}/logs</Property>
<!--<Property name="LOG_HOME">../logs</Property>-->
<!--<Property name="PATTERN">[%date{DEFAULT}] [%thread] [%-5level] TC:%x %logger{1.}.%method:%line - %msg%xEx%n</Property>-->
<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xEx</Property>
<Property name="LOG_LEVEL_PATTERN">%5p</Property>
<Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
<!--<Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{-&#45;&#45;}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>-->
<Property name="CONSOLE_LOG_PATTERN">%style{%d{${LOG_DATEFORMAT_PATTERN}}}{Dim} %highlight{${LOG_LEVEL_PATTERN}}{FATAL=white, ERROR=red, WARN=blue, INFO=black, DEBUG=green, TRACE=blue} %style{%-5pid}{Magenta} %style{---}{Dim} %style{[%15.15t]}{Dim} %style{%-40.40c{1.}}{Cyan} %style{L%-4line}{Dim} %style{:}{Dim} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
<Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} %-5pid --- [%t] %-40.40c{1.} L%-4line : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
</Properties>
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<!--<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>-->
<PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}"/>
</Console>
<!--处理DEBUG级别的日志,并把该日志放到logs/debug.log文件中-->
<!--打印出DEBUG级别日志,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
<RollingFile name="RollingFileDebug" fileName="${LOG_HOME}/debug.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
<Filters>
<ThresholdFilter level="debug"/>
<ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="50 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<!--处理INFO级别的日志,并把该日志放到logs/info.log文件中-->
<RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
<Filters>
<!--只接受INFO级别的日志,其余的全部拒绝处理-->
<ThresholdFilter level="info"/>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<!--处理WARN级别的日志,并把该日志放到logs/warn.log文件中-->
<RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/warn.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
<Filters>
<ThresholdFilter level="warn"/>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<!--处理error级别的日志,并把该日志放到logs/error.log文件中-->
<RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
<ThresholdFilter level="error"/>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<!--druid的日志记录追加器-->
<RollingFile name="druidSqlRollingFile" fileName="${LOG_HOME}/druid-sql.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/druid-sql-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="50 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<!--慢SQL的日志记录追加器-->
<!-- dataSource 配置
<property name="filters" value="stat"/>
<property name="connectionProperties" value="druid.stat.logSlowSql=true;druid.stat.slowSqlMillis=5000"/>
-->
<RollingFile name="slowSqlRollingFile" fileName="${LOG_HOME}/slow-sql.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/slow-sql-%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<SizeBasedTriggeringPolicy size="50 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileDebug"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
</root>
<!--记录druid-sql的记录-->
<logger name="druid.sql" level="debug" additivity="false">
<appender-ref ref="druidSqlRollingFile"/>
<appender-ref ref="Console"/>
</logger>
<!--记录慢sql的记录-->
<logger name="com.alibaba.druid.filter.stat" level="warn" additivity="false">
<appender-ref ref="slowSqlRollingFile"/>
<appender-ref ref="Console"/>
</logger>
<!-- 自定义日志输出控制:开始 -->
<logger name="com.github.busi" level="info"/>
<logger name="org.springframework" level="info"/>
<logger name="org.springframework.context.annotation" level="warn"/>
<logger name="org.springframework.beans.factory.support" level="warn"/>
<logger name="org.springframework.core.env.PropertySourcesPropertyResolver" level="warn"/>
<logger name="org.springframework.beans.factory.annotation" level="warn"/>
<logger name="org.springframework.core.LocalVariableTableParameterNameDiscoverer" level="warn"/>
<logger name="org.springframework.core.annotation.AnnotationUtils" level="warn"/>
<logger name="org.springframework.web.servlet.handler" level="info"/>
<logger name="org.springframework.aop.framework" level="info"/>
<logger name="org.hibernate.validator.internal" level="info"/>
<logger name="org.springframework.jmx.export" level="info"/>
<logger name="org.springframework.core.env" level="info"/>
<logger name="springfox.documentation" level="warn"/>
<logger name="org.apache.ibatis.logging.jdbc" level="off"/>
<!-- 如果需要输出mybatis日志,开启以下配置(主要是dao包) -->
<!--
<logger name="org.apache.ibatis.logging.jdbc" level="debug"/>
<logger name="com.github.busi.mapper" level="debug"/>
-->
<!--log4j2 自带过滤日志-->
<Logger name="org.apache.catalina.startup.DigesterFactory" level="error"/>
<Logger name="org.apache.catalina.util.LifecycleBase" level="error"/>
<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn"/>
<logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn"/>
<Logger name="org.crsh.plugin" level="warn"/>
<logger name="org.crsh.ssh" level="warn"/>
<Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error"/>
<Logger name="org.hibernate.validator.internal.util.Version" level="warn"/>
<logger name="org.thymeleaf" level="warn"/>
<logger name="org.springframework.core.env" level="warn"/>
<logger name="org.springframework.core.io.support" level="warn"/>
<logger name="org.springframework.web.filter" level="warn"/>
</loggers>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment