小程序原生组件—提升你的小程序体验
958
2023-02-08
spring boot使用logback日志级别打印控制操作
因为公司业务需要,需要把性能日志和业务日志分开打印,用elk收集处理,所以需要对不同的业务的日志,打印到不同文件。
使用的是spring boot自带的logback。
首先在yml文件配置logback.xml文件,默认会从resources下找logback.xml文件,找不到会从yml文件中找logging.config下的指定文件。
logging:
level: DEBUG
config: classpath:logback.xml
logback.xml是logback的配置文件,可以设置打印文件的路径,格式,过滤打印的级别等等,我们来看一下logback.xml文件。
value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %p APP_test %t %logger{50} [line:%L %msg]%n">
value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %p app_test %t %logger{50} [line:%L %msg]%n">
%d{yyyy/MM/dd' 'HH:mm:ss.SSS}:是对时间格式化,2018/12/19 17:31:17.126 %X{ req.requestId}:在MDC类中添加req.requestId参数,即可在logback.xml中使用,后面讲MDC类。 %p:打印出日志级别信息,如:INFO,ERROR等错误级别。 %t:是打印出线程或者哪个类打印出的日志。 %L:打印出当前行数。 %msg:就是日志信息啦。就是logger.info("xxx"),xxx就是%msg。 %n:换行。 MDC 是为了便于我们诊断线上问题而出现的方法工具类。 public class MDC { //Put a context value as identified by key //into the current thread's context map. public static void put(String key, String val); //Get the context identified by the key parameter. public static String get(String key); //Remove the context identified by the key parameter. public static void remove(String key); //Clear all entries in the MDC. public static void clear(); } 基本使用 MDC.put("req.requestId", uuid); MDC.put("req.remoteHost", request.getRemoteHost()); 在logback.xml中可使用%X{req.requestId},得到uuid。 打印到不同文件 private final static Logger performanceLogger = LoggerFactory.getLogger("performanceLogger"); 这样就可以使用logback.xml里 private static final Logger logger = LoggerFactory.getLogger(Class.class); 这样使用的就是logback.xml里的 这样就基本实现了分不同业务逻辑打印到不同文件了。 补充:Springboot 使用logback将各级别日志分别输出到不同路径 SpringBoot默认已经依赖了部分日志框架(如Logback),且其中推荐使用的也是Logback,所以本次项目中我们将通过新增Logback日志的配置,将各级别日志分别输出到不同路径。 SpringBoot已经依赖了Logback,所以不需要手动添加依赖。 SpringBoot会自动识别和读取resources目录下新建logback-spring.xml,所以不需要在application.yml进行其他的配置了。 配置文件具体如下: class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
%d{yyyy/MM/dd' 'HH:mm:ss.SSS}:是对时间格式化,2018/12/19 17:31:17.126
%X{ req.requestId}:在MDC类中添加req.requestId参数,即可在logback.xml中使用,后面讲MDC类。
%p:打印出日志级别信息,如:INFO,ERROR等错误级别。
%t:是打印出线程或者哪个类打印出的日志。
%L:打印出当前行数。
%msg:就是日志信息啦。就是logger.info("xxx"),xxx就是%msg。
%n:换行。
MDC
是为了便于我们诊断线上问题而出现的方法工具类。
public class MDC {
//Put a context value as identified by key
//into the current thread's context map.
public static void put(String key, String val);
//Get the context identified by the key parameter.
public static String get(String key);
//Remove the context identified by the key parameter.
public static void remove(String key);
//Clear all entries in the MDC.
public static void clear();
}
基本使用
MDC.put("req.requestId", uuid);
MDC.put("req.remoteHost", request.getRemoteHost());
在logback.xml中可使用%X{req.requestId},得到uuid。
打印到不同文件
private final static Logger performanceLogger = LoggerFactory.getLogger("performanceLogger");
这样就可以使用logback.xml里
private static final Logger logger = LoggerFactory.getLogger(Class.class);
这样使用的就是logback.xml里的
这样就基本实现了分不同业务逻辑打印到不同文件了。
补充:Springboot 使用logback将各级别日志分别输出到不同路径
SpringBoot默认已经依赖了部分日志框架(如Logback),且其中推荐使用的也是Logback,所以本次项目中我们将通过新增Logback日志的配置,将各级别日志分别输出到不同路径。
SpringBoot已经依赖了Logback,所以不需要手动添加依赖。
SpringBoot会自动识别和读取resources目录下新建logback-spring.xml,所以不需要在application.yml进行其他的配置了。
配置文件具体如下:
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~