一、日志框架

1.无论在什么系统,日志框架都是一个重要角色,所以理解和用好日志框架是相当重要的;像JDBC一样,日志框架分为接口层的门面和具体的实现组成。

2.市面上的产品:

2.1门面:SLF4J(Simple Loggin Facade for Java)、JCL(Jakarta Common Loggin)、jboss-logging

2.2具体实现:Log4j->Logback、Log4j2、JUL(java.util.loging)

其中SLF4J、Log4j->Logback都是出自同一个作者,兼容自然是最好,Logback可以说是Log4j的升级版,而Apache的Log4j2兼容性并不友好(需要引入中间层),其它产品几乎是很少用了,

所以现在SLF4J+Logback是主流组合,Springboot正是默认是使用了这套日志框架(spring底层默认使用JCL+Log4J)。

二、springboot使用日志框架

创建springboot项目时自动帮我们引入了SLF4J+Logback,使用起来非常简单,小试牛刀:


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


import com.example.log.DefLoggin;


@SpringBootApplication
public class SpringBootPropertiesApplication {

  public static void main(String[] args) {
    SpringApplication.run(SpringBootPropertiesApplication.class, args);
    Logger logger = LoggerFactory.getLogger(DefLoggin.class);
    logger.trace("1.追踪");
    logger.debug("2.调试");
    logger.info("3.信息");
    logger.warn("4。警告");
    logger.error("5.错误");
  }

}

输出(默认知道INFO级别):

2019-04-25 22:32:34.611 INFO 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 3.信息
2019-04-25 22:32:34.612 WARN 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 4。警告
2019-04-25 22:32:34.612 ERROR 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 5.错误

日志输出级别:

  • Log Level: ERRORWARNINFODEBUG, or TRACE.(官方文档)

当然我们可以通过配置文件控制输出级别以及更多其它常用设置。

三、日志框架常用配置

#logging.level.com.example.demo=ERROR
#logging.path=
# 不指定路径在当前项目下生成springboot.log日志
# 可以指定完整的路径;
#logging.file=G:/springboot.log # 在当前磁盘的根路径下创建spring文件夹和里面的log文件夹;使用 spring.log 作为默认文件
logging.path=/spring/log # 在控制台输出的日志的格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
# 指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n
logging.file logging.path Example Description
(none) (none)   只在控制台输出
指定文件名 (none) my.log 输出日志到my.log文件
(none) 指定目录 /var/log 输出到指定目录的 spring.log 文件中

四、日志框架的配置文件

一般我们会自定配置文件,覆盖默认文件的部分属性。

Logging System Customization
Logback logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

1.logback.xml,对应logback框架默认配置文件名,直接被日志框架识别使用;

2.logback-spring.xml,先由springboot加载解析,再给日志框架使用,可使用高级功能Profile

<layout class="ch.qos.logback.classic.PatternLayout">
<springProfile name="dev">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern>
</springProfile>
<springProfile name="!dev">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==== [%thread] ==== %-5level %logger{50} - %msg%n</pattern>
</springProfile>
</layout>

在主配置文件application.properties中

spring.profiles.active=dev控制使用哪个格式。

SpringBoot与日志框架1(基本使用)的更多相关文章

  1. SpringBoot与日志框架2(日志内斗)

    一.SpringBoot如何引入slf4j+logback框架的呢? 在POM文件中 <dependency> <groupId>org.springframework.boo ...

  2. SpringBoot日记——日志框架篇

    在项目的开发中,日志是必不可少的一个记录事件的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架. 而市面上常见的日志框架有很多,比如:JCL.SLF4J.Jboss-logging.jUL. ...

  3. SpringBoot整合日志框架LogBack

    日志可以记录我们应用程序的运行情况,我们可以通过日志信息去获取应用程序更多的信息.常用处理java日志的组件有:slf4j.log4j.logback.common-logging等.其中log4j是 ...

  4. Springboot入门-日志框架配置(转载)

    默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台. Logback是log4j框架的作者开发的新一代日志框架,它效率更高.能够适应诸多的运行环境,同时天然支 ...

  5. springboot的日志框架slf4j (使用logback输出日志以及使用)

    1.为什么使用logback? ——在开发中不建议使用System.out因为大量的使用会增加资源的消耗.因为使用System.out是在当前线程执行的,写入文件也是写入完毕之后才继续执行下面的程序. ...

  6. SpringBoot系列之日志框架介绍及其原理简介

    SpringBoot系列之日志框架介绍及其原理简介 1.常用日志框架简介 市面上常用日志框架:JUL.JCL.jboss-logging.logback.log4j.log4j2.slf4j.etc. ...

  7. springboot+logback日志输出企业实践(上)

    目录 1.引言 2.logback简介 3. springboot默认日志框架-logback 3.1 springboot示例工程搭建 3.2 日志输出与基本配置 3.2.1 日志默认输出 3.2. ...

  8. Spring Boot第四弹,一文教你如何无感知切换日志框架?

    持续原创输出,点击上方蓝字关注我吧 目录 前言 Spring Boot 版本 什么是日志门面? 如何做到无感知切换? 如何切换? 引入依赖 指定配置文件 日志如何配置? 总结 前言 首先要感谢一下读者 ...

  9. java框架之SpringBoot(3)-日志

    市面上的日志框架 日志抽象层 日志实现 JCL(Jakarta Commons Logging).SLF4J(Simple Logging Facade For Java).JBoss-Logging ...

随机推荐

  1. MySQL实战45讲学习笔记:索引(第四讲)

    一.索引模型 1.索引的作用: 索引的出现其实是为了提高数据查询的效率,就像书的目录一样 提高数据查询效率 2.索引模型的优缺点比较 二.InnoDB索引模型 1.二叉树是搜索效率最高的,但是实际上大 ...

  2. jQuery第1天

    概念 jQuery 是一个 JavaScript 库,其实就是通过 原生JS 封装了的很多的 方法 和 属性. JS 库特点 JavaScript 库:由第三方开发者基于原生 JS 基础上,封装了很多 ...

  3. nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket【转】

    原文地址:https://www.cnxct.com/default-configuration-and-performance-of-nginx-phpfpm-and-tcp-socket-or-u ...

  4. python 基础部分重点复习整理2

    把这里的题目争取刷一遍 博客记录 python的ORM框架peewee SQLAlchemy psycopg2 Django 在1 的基础上,重点突出自己以前没注意的,做到精而不杂!!! Python ...

  5. 电梯系列——OO Unit2分析和总结

    一.摘要 本文是BUAA OO课程Unit2在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.主要包含设计策略.代码度量.BUG测试和心得体会等 ...

  6. python 使用win32com实现对word文档批量替换页眉页脚

    最近由于工作需要,需要将70个word文件的页眉页脚全部进行修改,在想到这个无聊/重复/没有任何技术含量的工作时,我的内心是相当奔溃的.就在我接近奔溃的时候我突然想到完全可以用python脚本来实现这 ...

  7. PHP数组函数详解大全

    一.数组操作的基本函数 数组的键名和值 array_values($arr);获得数组的值 array_keys($arr);获得数组的键名 array_flip($arr);数组中的值与键名互换(如 ...

  8. Intellij IDEA 修改jsp 不能实时更新

    Intellij IDEA 修改jsp 不能实时更新 1. 首先,output要指定到项目的webapp下,这样应该就可以实时更新了 2. 我的问题是这样设置之后,也不可以,原来是可以的,重装系统之后 ...

  9. python基础之文件操作和函数

    一.知识点 1.三元运算 a = 2 b = 3 val = 6 if a < b else 7 print(val) 2.文件读取 f = open(file='file.txt',mode= ...

  10. Redis缓存穿透和缓存雪崩以及解决方案

    Redis缓存穿透和缓存雪崩以及解决方案 Redis缓存穿透和缓存雪崩以及解决方案缓存穿透解决方案布隆过滤缓存空对象比较缓存雪崩解决方案保证缓存层服务高可用性依赖隔离组件为后端限流并降级数据预热缓存并 ...