【Spring】springboot 整合 log4j、logback框架,并部署到服务器

目录

一、常见的日志框架

二、日志输出格式解析

三、SpringBoot 整合logback日志框架

3.1 查看是否需要引入 logback

3.2 整合 logback

3.2.1 增加配置文件

3.2.2 使用和测试

3.2.3 开启 logback 自动重新加载配置文件

四、 springboot+logback 部署到 Linux 服务器上

4.1 外置 tomcat

4.1.1 修改依赖文件

4.1.2 修改启动类

4.1.3 打包

4.1.4 动态重新加载日志配置文件

4.2 使用 springboot 自带的 tomcat

4.2.1 修改启动类

4.2.2 将配置文件移动到 Linux 服务器上

4.2.3 启动/关闭项目

4.2.4 动态加载日志文件配置


一、常见的日志框架

日志抽象框架:

  • JCL
  • SLF4j:与 Log4j 和 Logback 同源
  • jboss-logging

日志实现框架:

  • Log4j:存在性能问题
  • JUL
  • Log4j2:apache公司出品,但与其他框架的兼容性不足
  • Logback

最终选择:

抽象框架: SLF4j      实现框架: Logback

 

二、日志输出格式解析

格式:

  • %d: 表示日期时间
  • %thread: 表示线程名
  • %-5level: 级别从左显示5个字符宽度
  • %logger{50}:表示 logger 名字最长50个字符,否则按照句点分割
  • %msg: 日志消息
  • %n:换行符

例子:

logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} === [%thread] === %-5level === %logger{50} === %msg%n

  【Spring】springboot 整合 log4j、logback框架,并部署到服务器_第1张图片

 

三、SpringBoot 整合logback日志框架

3.1 查看是否需要引入 logback

springboot 框架默认引入了 logback 相关的依赖,我们无需专门引入 logback。

下图中可以看出,在 spring-boot-stater 中就已经将 logback 引入了

【Spring】springboot 整合 log4j、logback框架,并部署到服务器_第2张图片

 

3.2 整合 logback

3.2.1 增加配置文件

在 resources 下新增 logback-spring.xml 文件




    
    
    
    

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

    
    
        
        ${LOG_PATH}/api.log
        
            ${LOG_PATH}/info/api-info-%d{yyyy-MM-dd}.%i.log
            
                50MB
            
        
        
        true
        
        
            %d{yyyy-MM-dd HH:mm:ss} - %logger{50} %msg%n
            UTF-8
        
        
        
            INFO
        
    

    
    
    
    
    
    
    
    
        
        
    

 

3.2.2 使用和测试

编写一个控制器进行测试

@Controller
public class HelloController {

    // 使用日志工厂生成这个类的日志对象,并使用
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @RequestMapping("/testlog")
    @ResponseBody
    public void testLog() {
        logger.trace("这是trace日志...");
        logger.debug("这是debug日志...");
        logger.info("这是info日志...");
        logger.warn("这是warn日志...");
        logger.error("这是error日志...");
    }
}

调用请求:

结果为:

 

3.2.3 开启 logback 自动重新加载配置文件

在生成环境中,需要根据实际情况决定日志的开启级别。当线上正常运行时由于写日志会消耗一定的服务器性能,故日志级别应调到 WARN ,只打印必要日志。

那么当出现问题时,我们要如何通过日志来获取更多信息呢?相较于修改日志配置文件,并重启服务器,logback 支持我们自动重新加载配置文件,无需重启服务器。




    ......
    ......
    ......

 

四、 springboot+logback 部署到 Linux 服务器上

4.1 外置 tomcat

4.1.1 修改依赖文件

由于 springboot 自带了 tomcat,故使用外置 tomcat 时,需要修改 pom.xml 文件,去掉自带的 tomcat,并将打包方式改为 war 包。

// pom.xml


    4.0.0
    ...

    
                    

你可能感兴趣的:(logback,spring,boot)