Logback日志基础及自定义配置代码实例

Logback日志基础配置

logback日志配置有很多介绍,但是有几个非常基础的,容易忽略的。下面是最简单的一个配置,注意加粗的描述




  
  

  

    
    ${log.path}/errorlog.log

    
    
      %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
    

    
      
      ${log.pat h}/errorlog.%d{yyyyMMdd}.log.%i.gz
      
        4096MB
      
      
      365
    
  

  
     
    
  

在规范里,行结束符往往采用Linux结束符(\n),而不是上面那样的 %n。 这个\n ,使用txt文档查看,并没有换行

使用%的正则还有许许多多,比如如下:

再比如:%contextName 作用是 显示主机名

Logback日志自定义配置

即便如此,还是有很多想要的东西显示不了,这时就可自定义配置。比如我希望每条日志有个uuid类型的id,希望每条日志能打印ip地址

一、新建两个配置类,重写convert方法

package cn.jiashubing.config.logback;

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import java.util.UUID;

public class LogIdConfig extends ClassicConverter {

  @Override
  public String convert(ILoggingEvent event) {
    return UUID.randomUUID().toString().replaceAll("-", "");
  }
}


package cn.jiashubing.config.logback;

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class IPLogConfig extends ClassicConverter {

  @Override
  public String convert(ILoggingEvent event) {
    try {
      return InetAddress.getLocalHost().getHostAddress();
    } catch (UnknownHostException e) {
      e.printStackTrace();
    }
    return null;
  }
}

二、配置日志文件





       
  ${log.path}/errorlog.log       
             
    [loglevel=%level] [timestamp=%d{yyyy-MM-dd HH:mm:ss}] [logid=%logid] [ip=%ip] [cmd=%msg] \n       
  
  ...

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(Logback日志基础及自定义配置代码实例)