`

54. spring boot日志升级篇—logback【从零开始学Spring Boot】

阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

       44. Spring Boot日志记录SLF4J章节中有关相关的介绍,这里我们在深入的了解下logback框架。

 

为什么要使用logback ?

       ——在开发中不建议使用System.out因为大量的使用会增加资源的消耗。因为使用System.out是在当前线程执行的,写入文件也是写入完毕之后才继续执行下面的程序。而使用Log工具不但可以控制日志是否输出,怎么输出,它的处理机制也是通知写日志,继续执行后面的代码不必等日志写完。

       ——个人推荐使用SLF4JSimple Logging Façade For Java)的logback来输出日志,其比log4j效率高。

    ——Spring Boot 提供了一套日志系统,logback是最优先的选择。

 

疑惑解答:logback,slf4j,log4j之间的关系

       Slf4jThe Simple Logging Facade for Java的简称,是一个简单日志门面抽象框架,它本身只提供了日志Facade API和一个简单的日志类实现,一般常配合Log4jLogBackjava.util.logging使用。Slf4j作为应用层的Log接入时,程序可以根据实际应用场景动态调整底层的日志实现框架(Log4j/LogBack/JdkLog...)

      

LogBackLog4j都是开源日记工具库,LogBackLog4j的改良版本,比Log4j拥有更多的特性,同时也带来很大性能提升。详细数据可参照下面地址:Reasons to prefer logback over log4j

      

       LogBack官方建议配合Slf4j使用,这样可以灵活地替换底层日志框架。

(note: 为了优化log4j,以及更大性能的提升,Apache基金会已经着手开发了log4j 2.0, 其中也借鉴和吸收了logback的一些先进特性,目前log4j2还处于beta阶段)

 

Logback的结构

       LogBack被分为3个组件,logback-core, logback-classic logback-access.

其中logback-core提供了LogBack的核心功能,是另外两个组件的基础。

logback-classic则实现了Slf4jAPI,所以当想配合Slf4j使用时,需要将logback-classic加入classpath

logback-access是为了集成Servlet环境而准备的,可提供HTTP-access的日志接口;

 

Slf4j+Logback的快速实践

spring-boot默认支持logback,所以无需引用任何以来只需要,配置application.properties即可,如果要功能丰富些,则配置下logback.xml

 

 

一、在application.properties里配置的方式:

logging.file=./springboot.log

 

这是最简便的方法,默认级别是info,要改级别的话还要在appliacation.properties里增加一行 

logging.level.org.springframework.web=INFO

 

二、配置logback-spring.xml

src/main/resources 下面创建logback.xml (根据不同环境来定义不同的日志输出,那么取名为logback-spring.xml 即可,官方优先推荐使用-spring.*的配置方式)文件。

logback-spring.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <include resource="org/springframework/boot/logging/logback/base.xml" />

    <logger name="org.springframework.web" level="INFO"/>

 

 </configuration>

 

在代码中调用:

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 private Logger logger =  LoggerFactory.getLogger(this.getClass());

 

具体使用起来特别的简单,那么来解读一下配置文件。

配置文件解读:

logback-spring.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <include resource="org/springframework/boot/logging/logback/base.xml" />

    <logger name="org.springframework.web" level="INFO"/>

</configuration>

       在这个文件定义了一个 捕获 org.springframework.web 的日志,日志级别是 INFO,上面引用的base.xml 文件内容为:

<?xml version="1.0" encoding="UTF-8"?>

<!--

Base logback configuration provided for compatibility with Spring Boot 1.1

-->

 

<included>

    <includeresource="org/springframework/boot/logging/logback/defaults.xml" />

    <propertyname="LOG_FILE"value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>

    <includeresource="org/springframework/boot/logging/logback/console-appender.xml" />

    <includeresource="org/springframework/boot/logging/logback/file-appender.xml" />

    <rootlevel="INFO">

        <appender-refref="CONSOLE" />

        <appender-refref="FILE" />

    </root>

</included>

这个base.xmlSpring Boot的日志系统预先定义了一些系统变量:

       PID,当前进程ID{LOG_FILE}Spring Boot配置文件(application.properties|.yml)中logging.file的值,${LOG_PATH}, Spring Boot配置文件中logging.path的值 

       同时默认情况下包含另个appender——一个是控制台,一个是文件,分别定义在console-appender.xmlfile-appender.xml中。同时对于应用的日志级别也可以通过application.properties进行定义:

* 如果在 logback.xml application.properties 中定义了相同的配置(如都配置了 org.springframework.web)但是输出级别不同,则实际上 application.properties 的优先级高于 logback.xml *

 

多环境日志输出

根据不同环境(prod:生产环境,test:测试环境,dev:开发环境)来定义不同的日志输出,在 logback-spring.xml 中使用 springProfile 节点来定义,方法如下:

 

【注意文件名称不是logback.xml,想使用spring扩展profile支持,要以logback-spring.xml命名

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <include resource="org/springframework/boot/logging/logback/base.xml" />

    <logger name="org.springframework.web" level="INFO"/>

    <logger name="org.springboot.sample" level="TRACE" />

   

    <!-- 测试环境+开发环境. 多个使用逗号隔开. -->

     <springProfile name="test,dev">

        <logger name="org.springframework.web" level="INFO"/>

        <logger name="org.springboot.sample" level="INFO" />

        <logger name="com.kfit" level="info" />

    </springProfile>

 

   

    <!-- 生产环境. -->

    <springProfile name="prod">

        <logger name="org.springframework.web" level="ERROR"/>

        <logger name="org.springboot.sample" level="ERROR" />

        <logger name="com.kfit" level="ERROR" />

    </springProfile>

   

</configuration>

 

可以启动服务的时候指定 profile (如不指定使用默认),如指定prod 的方式为:

java -jar xxx.jar --spring.profiles.active=prod

 

总结

Spring Boot 中记录日志只需两步: 
1
、在 src/main/resources 下面创建logback.xml 文件,并按上面讲述的进行配置。 
或者使用最简单的方法在 application 配置文件中配置。 
2
、在Java代码中创建实例,并在需要输出日志的地方使用。

// Java类中创建 logger 实例
private Logger logger = LoggerFactory.getLogger(this.getClass());
// 在方法中使用日志输出,如
publicvoidlogTest() {
    logger.debug("日志输出测试 Debug");
    logger.trace("日志输出测试 Trace");
    logger.info("日志输出测试 Info");
}

 

 

  Spring Boot 系列博客】

视频&交流平台

à Spring Boot网易云课堂视频

http://study.163.com/course/introduction.htm?courseId=1004329008

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

历史章节

 

第一章 快速开始

1、Spring Boot之Hello World

2、Spring Boot之Hello World访问404

 

第二章 Spring Boot之JSON

1、spring boot返回json数据

2、Spring Boot完美使用FastJson解析JSON数据

 

第三章 Spring Boot热部署

1、Spring Boot热部署(springloader)

2、springboot + devtools(热部署)

 

第四章 Spring Boot数据库

1、Spring Boot JPA/Hibernate/Spring Data概念

2、Spring Boot JPA-Hibernate

3、Spring Boot Spring Data JPA介绍

4、Spring Boot JdbcTemplate

5、Spring Boot集成MyBatis

 

第五章 web开发

1、全局异常捕捉

2、配置server信息

3、spring boot使用thymeleaf

4、Spring Boot 使用freemarker

5、Spring Boot添加JSP支持

 

第六章 定时任务

1、Spring Boot定时任务

2、Spring Boot 定时任务升级篇(动态修改cron参数)

3、Spring Boot 定时任务升级篇(动态添加修改删除定时任务)

4、Spring Boot 定时任务升级篇(集群/分布式下的定时任务说明)

5、Spring Boot Quartz介绍

6、Spring Boot Quartz在Java Project中使用

7、Spring Boot 集成Quartz普通使用

8、Spring Boot 集成Quartz升级版

9、Spring Boot 集成Quartz二次升级版

10、Spring Boot 集成Quartz-Job如何自动注入Spring容器托管的对象

 

第七章 Spring Boot MyBatis升级篇

1、Spring Boot MyBatis升级篇-注解

2、Spring Boot MyBatis升级篇-注解-自增ID

3、Spring Boot MyBatis升级篇-注解-增删改查

4、Spring Boot MyBatis升级篇-注解-分页查询

5、Spring Boot MyBatis升级篇-注解-分页PageHelper不生效

6、Spring Boot MyBatis升级篇-注解- mybatic insert异常:BindingException: Parameter 'name' not found

7、Spring Boot MyBatis升级篇-注解- #和$符号特别篇

8、Spring Boot MyBatis升级篇-注解-@Result

9、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案一:<script>

10、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider

11、Spring Boot MyBatis升级篇-注解-动态SQL-参数问题

12、Spring Boot MyBatis升级篇-注解-特别篇:@MapperScan和@Mapper

13、Spring Boot MyBatis升级篇-XML

14、Spring Boot MyBatis升级篇-XML-自增ID

15、Spring Boot MyBatis升级篇-XML-增删改查

16、Spring Boot MyBatis升级篇-XML-分页查询

17、Spring Boot MyBatis升级篇-XML-分页PageHelper不生效

18、Spring Boot MyBatis升级篇-XML-动态SQL(if test)

19、Spring Boot MyBatis升级篇-XML-注解-初尝试

20、Spring Boot MyBatis升级篇- pagehelper替换为pagehelper-spring-boot-starter

 

第八章 Spring Boot 知识点1

1、Spring Boot 拦截器HandlerInterceptor

2、Spring Boot启动加载数据CommandLineRunner

3、Spring Boot环境变量读取和属性对象的绑定

4、Spring Boot使用自定义的properties

5、Spring Boot使用自定义的properties

6、Spring Boot使用@SpringBootApplication

7、Spring Boot 监控和管理生产环境

 

第十章 Spring Boot 打包部署

1、Spring Boot打包部署((提供Linux的sh文件))

 

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

更多查看博客: http://412887952-qq-com.iteye.com/

 

 

分享到:
评论
7 楼 qwfys200 2017-07-21  
总结的不错。
6 楼 林祥纤 2017-01-17  
a807966224 写道
单位无聊的时候,就会看看博主的东西,从中学习了很多,随着见识增长,也越来越困惑。


学的越多,不会的越多,很正常的一个阶段....
5 楼 a807966224 2017-01-17  
单位无聊的时候,就会看看博主的东西,从中学习了很多,随着见识增长,也越来越困惑。
4 楼 林祥纤 2016-09-05  
SmileTower 写道
spring boot 咋没有实现 log4j2 的 springProfile


原理差不多,可以自行实现。
3 楼 SmileTower 2016-09-03  
spring boot 咋没有实现 log4j2 的 springProfile
2 楼 林祥纤 2016-06-26  
LinApex 写道
博主的spring boot资源已经被我榨干了~


从中能有收获即可。
1 楼 LinApex 2016-06-26  
博主的spring boot资源已经被我榨干了~

相关推荐

    从零开始学Spring Boot

    《从零开始学Spring Boot》是一本由林祥纤编著的书籍,旨在帮助初学者系统地学习和掌握Spring Boot框架。Spring Boot是Java开发领域的一款流行框架,它简化了Spring应用的初始设置和配置,使得开发者能够快速构建可...

    spring-boot实战PDF 完整版和随书源码.7z

    《Spring Boot实战》是一本深度剖析Spring Boot框架的实践指南,旨在帮助开发者快速掌握Spring Boot的核心概念和技术。这本书深入浅出地介绍了如何使用Spring Boot构建高效、简洁的Java应用程序。随书源码提供了丰富...

    Spring Boot教程.pdf

    Spring Boot 支持多种日志框架,如 Logback、Log4j 等。 在日志处理中,我们可以使用 @Slf4j 注解来标注日志类,并使用 logger 对象来记录日志信息。同时,我们也可以使用日志配置文件来配置日志的输出格式和级别...

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建.docx

    在本文中,我们将详细介绍如何从零开始搭建一个基于Spring Boot的开发环境,其中包括Spring Boot、Mybatis和Swagger2的集成。首先,让我们了解为何选择Spring Boot。 **为什么使用Spring Boot** Spring Boot是...

    Spring Boot 系列实战合集.zip

    1. 创建第一个 Spring Boot 项目:从零开始创建一个简单的 "Hello, World!" 应用,理解 Maven 或 Gradle 项目的结构。 2. 使用 Spring Boot 的自动配置:探究如何利用自动配置来简化配置文件。 3. 开发 RESTful API...

    [E文]Spring Boot 2 Recipes

    综上所述,《Spring Boot 2 Recipes》这本书不仅是一本实用的技术手册,还是一本引导读者从零开始到精通 Spring Boot 2 的宝贵资源。无论是新手还是有经验的开发者,都能从中获得有价值的指导和启发。

    spring boot中文参考指南

    综上所述,"spring boot中文参考指南"这份文档将涵盖以上各个方面的内容,指导读者从零开始学习Spring Boot,直至掌握构建微服务的关键技能。这份PDF资源对于Spring Boot初学者或是希望提升微服务开发能力的开发者来...

    Java spring boot 框架通用模板

    2. 引入最佳实践:模板可能包含了日志处理、错误处理、安全性、缓存管理等方面的最佳实践,避免了从零开始设计这些常见功能。 3. 数据访问:Spring Boot支持多种数据库,包括JDBC、JPA、Hibernate等,通用模板可能...

    logback练习代码,从0开始到整合SpringBoot

    通过以上步骤,你可以从零开始构建并整合 Logback 到 Spring Boot 应用中,体验其强大的日志管理能力。不断练习和调整配置,你将更熟练地掌握日志系统的使用,从而提高开发效率和问题排查能力。

    从0写一个问卷调查APP后端spring boot基础框架

    以下将详细介绍如何从零开始构建这个框架。 1. **环境配置**: - 首先,确保安装了JDK,并将版本设置为1.8或以上,因为Spring Boot 2.x版本主要支持Java 8及以上。 - 安装Maven或Gradle作为项目构建工具,Spring ...

    干净可用spring-boot的项目

    这大大节省了开发者从零开始构建新项目的时间,提高了开发效率。 下面我们将深入探讨Spring Boot的核心特性和主要知识点: 1. **起步依赖(Starter Dependencies)**:Spring Boot通过“起步依赖”管理依赖关系,...

    base.spring.boot

    通过"base.spring.boot-master"这个项目,你可以深入学习如何从零开始构建一个完整的Spring Boot应用,包括项目结构、配置文件、控制器、服务层、数据库集成、单元测试等多个方面。实践是检验真理的唯一标准,动手...

    从0到1实战,快速搭建SpringBoot工程

    在本教程中,我们将一起探索如何从零开始,逐步构建一个Spring Boot应用。Spring Boot以其简洁、快速的项目初始化和自动配置特性,已经成为Java开发领域中的首选框架之一。本实战指南将带你走过整个过程,从创建项目...

    SpringBoot视频教程全套百度网盘

    根据提供的文件信息,我们可以梳理出一系列与Spring Boot相关的知识点,这些知识点主要涵盖了Spring Boot的基础...通过学习这些知识点,开发者可以从零开始逐步掌握Spring Boot的使用方法,并将其应用于实际项目中。

    从零搭建Spring Boot脚手架,增加通用的功能.docx

    本文旨在从零开始搭建一个Spring Boot项目框架(脚手架),并在此基础上增加一系列通用功能以提高开发效率及代码复用性。通过集成Spring MVC,并对其进行一定程度的定制化处理,以满足日常软件开发中的常见需求。...

    spring-boot-hello-world:Spring Boot 应用程序示例

    总的来说,"spring-boot-hello-world"项目为我们提供了一个简洁明了的Spring Boot应用实例,展示了从零开始创建一个简单Web应用的过程。通过这个项目,你可以学习到Spring Boot的基本架构、配置方式以及如何编写控制...

    从零搭建自己的springboot后台框架.rar

    在本文中,我们将深入探讨如何从零开始搭建一个基于Spring Boot的后台框架。Spring Boot是Java领域中的一个流行框架,它极大地简化了Spring应用程序的初始设置和配置,使得开发过程更加高效。首先,我们需要了解搭建...

    java课程设计项目:基于SpringBoot的在线订餐系统.zip

    所有源码都已经过测试,可以直接运行,这为学习者提供了直接实践的机会,无需从零开始构建整个系统,大大降低了学习和开发的难度。 【标签】"spring boot"、"spring boot java"和"毕业设计"揭示了项目的几个关键点...

    java+手把手vue+springboot前后端分离项目实战---社区项目后端代码.zip

    本项目是一个基于Java、Vue和SpringBoot的前后端分离实战案例,主要涵盖了社区类Web应用的后端开发。...通过这个项目,你可以学习到如何从零开始构建一个完整的Web应用,并且能够灵活运用到实际工作中。

    管理系统系列-- 从零开始搭建后台管理系统.zip

    【标题】:“管理系统系列-- 从零开始搭建后台管理系统” 这个标题揭示了我们要探讨的核心主题:如何从无到有地构建一个后台管理系统。后台管理系统是企业信息化建设中的关键部分,它负责处理数据、业务逻辑以及与...

Global site tag (gtag.js) - Google Analytics