log4j2认识

<?xml version="1.0" encoding="UTF-8"?>
<!-- 对配置状态进行关闭,不把打印的细节在控制台中输出 -->
<!-- 该配置状态分为8个级别:高->低:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL -->
<Configuration status="OFF">
   <properties>
        <property name="project-name">project-name</property> 
   </properties>
 
  <Appenders>
    <!-- 在控制台打印日志 -->
    <Console name="Console" target="SYSTEM_OUT">
<!--控制台只输出level及以上的信息(onMath),其他的直接拒绝(onMissmatch)-->
       <ThresholdFilter level="info" onMath="ACCEPT" onMissmatch="DENY"/>
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} %-6level [%t] (%F:%L) - %msg%n"/>
    </Console>

    <!-- 日志输出分为6个级别:高->低:FATAL、ERROR、WARN、INFO、DEBUG、TRACE -->
    <!-- Debug调试级别 -->
    <!-- 这里根据你的个人习惯来写就好了,不细分的话写一个File就好了 -->
    <!-- 输出日志文件,位置自动保存在项目根目录下的logs文件夹中 -->
    <File name="MyDebugFile" fileName="logs/debug.log">
    <!-- 我这么写是为了把不同级别的日志筛选开来,便于查看 -->
    <!-- Filter过滤器,以此设置日志级别,进行不同程度的日志区分,如果不这样细分,可把Filter去掉 -->
    <!-- 比如这样设置:<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>  -->
    <Filters> 
    <!-- 第一步 onMatch="DENY":匹配到info及更高级别就DENY过滤掉,其他的NEUTRAL保留 -->
    <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/> 
    <!-- 第二步 onMatch="ACCEPT":匹配到debug及更高级别就ACCEPT保留,其他的DENY过滤掉 -->
    <!-- 经过两步过滤,把debug以上的和以下的级别全部过滤,最终剩下debug级别 -->
    <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/> 
    </Filters>
      <!-- 对打印语句的格式进行设置,这个太多放在后面讲 -->
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} %-6level [%t] (%F:%L) - %msg%n"/>     
    </File>
    
    <!-- Info信息级别 -->
    <File name="MyInfoFile" fileName="logs/info.log">
    <Filters> 
    <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/> 
    <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> 
    </Filters>
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} %-6level [%t] (%F:%L) - %msg%n"/>     
    </File>

    <!-- Warn警告级别 -->
    <File name="MyWarnFile" fileName="logs/warn.log">
    <Filters> 
    <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/> 
    <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/> 
    </Filters>
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} %-6level [%t] (%F:%L) - %msg%n"/>     
    </File>

    <!-- Error错误级别 -->
    <File name="MyErrorFile" fileName="logs/error.log">
    <Filters> 
    <ThresholdFilter level="fatal" onMatch="DENY" onMismatch="NEUTRAL"/> 
    <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> 
    </Filters>
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} %-6level [%t] (%F:%L) - %msg%n"/>     
    </File>

    <!-- Fatal严重错误级别 -->
    <File name="MyFatalFile" fileName="logs/fatal.log">
    <ThresholdFilter level="fatal" onMatch="ACCEPT" onMismatch="DENY"/> 
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} %-6level [%t] (%F:%L) - %msg%n"/>     
    </File>
  </Appenders>
  
  <!-- 定义Loggers,只有定义了Loggers并引入刚才的appender配置,配置才会生效 --> 
  <Loggers>
    <Root level="trace">
      <!-- Only events at DIAG level or more specific are sent to the console. -->
      <AppenderRef ref="Console"/>
      <AppenderRef ref="MyDebugFile"/>
      <AppenderRef ref="MyInfoFile"/>
      <AppenderRef ref="MyWarnFile"/>
      <AppenderRef ref="MyErrorFile"/>
      <AppenderRef ref="MyFatalFile"/>
    </Root>
  </Loggers>
</Configuration>

相关解释如下:

%d: 输出日志发生时间,可进行格式{yyy-MM-dd HH:mm:ss.SSS}设置,也可不用
%-6level: 输出的级别信息右对齐,总长度为6字符;正数为左对齐,看个人习惯
%t: 输出产生该日志事件的线程名
%F: 输出日志信息所属的类的类名
%l: 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%msg: 输出日志信息
%n: 换行
%c: 输出日志信息所属的类的全名
%c: 输出自应用启动到输出该日志信息所耗费的毫秒数
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值