转自:https://blog.csdn.net/qq_36850813/article/details/83092051

官方文档参考:https://logback.qos.ch/manual/appenders.html

 

logback 简介

Ceki Gülcü在Java日志领域世界知名。他创造了Log4J ,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行。随后他又着手实现SLF4J 这个“简单的日志前端接口(Façade)”来替代Jakarta Commons-Logging 。

LOGBack,一个“可靠、通用、快速而又灵活的Java日志框架”。

在工程src目录下建立logback.xml

注:

1.logback首先会试着查找logback.groovy文件;

2.当没有找到时,继续试着查找logback-test.xml文件;

3.当没有找到时,继续试着查找logback.xml文件;

4.如果仍然没有找到,则使用默认配置(打印到控制台)。

自定义日志配置
根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:

Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties
Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项。 
默认的命名规则,并且放在 src/main/resources 下面即可

如果你即想完全掌控日志配置,但又不想用logback.xml作为Logback配置的名字,application.yml可以通过logging.config属性指定自定义的名字:

logging.config=classpath:logging-config.xml


虽然一般并不需要改变配置文件的名字,但是如果你想针对不同运行时Profile使用不同的日志配置,这个功能会很有用。 
一般不需要这个属性,而是直接在logback-spring.xml中使用springProfile配置,不需要logging.config指定不同环境使用不同配置文件。
 

Example:

 1 package logback;  
 2   
 3 import org.slf4j.Logger;  
 4 import org.slf4j.LoggerFactory;  
 5   
 6 public class LogbackDemo {  
 7     private static Logger log = LoggerFactory.getLogger(LogbackDemo.class);  
 8     public static void main(String[] args) {  
 9         log.trace("======trace");  
10         log.debug("======debug");  
11         log.info("======info");  
12         log.warn("======warn");  
13         log.error("======error");  
14            
15         String name = "Aub";  
16         String message = "3Q";  
17         String[] fruits = { "apple", "banana" };  
18           
19         // logback提供的可以使用变量的打印方式,结果为"Hello,Aub!"  
20         log.info("Hello,{}!", name);  
21           
22         // 可以有多个参数,结果为“Hello,Aub! 3Q!”  
23         log.info("Hello,{}!   {}!", name, message);  
24           
25         // 可以传入一个数组,结果为"Fruit:  apple,banana"  
26         log.info("Fruit:  {},{}", fruits);   
27     }  
28 }  
LogbackDemo

相关文章: