市面上的日志框架

日志门面 (日志的抽象层) 日志门面 (日志的抽象层)
JCL(Jakarta Commons Logging
SLF4j(Simple Logging Facade for Java)
jboss-loggi
JUL(java.util.logging)
Log4j
Log4j2
Logback

左边选一个门面(抽象层);右边选一个实现

SLF4J使用

系统中使用SLF4j

  • 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;
  • 给系统导入slf4j和logback的实现jar
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(HelloWorld.class);logger.info("Hello World");}
    }

每个日志的框架都有自己的配置文件。使用slf4j以后,配置文件还是做成日志实现框架自己本身的配置文件

日志兼容问题

  • 项目依赖的框架使用不同的日志
  • 当项目使用多种日志API时,可以同一适配到SLF4J,中间使用SLF4J或者第三方提供的日志适配器,从而适配到SLF4J,SLF4J在底层享用的一个日志框架来进行日志系统的实现,从而达到多种日志的统一实现。

如何统一日志,将所有的日志都统一到SLF4J

  1. 将系统中其他日志框架先排除出去;
  2. 用中间包来替换原有的日志框架(适配器的类名和包名与替换的被日志框架一致);
  3. 我们导入slf4j其他的实现

底层依赖关系

  1. SpringBoot底层也是使用slf4J和logback的方式进行日志记录
  2. SpringBoot也把其他的日志替换成了slf4j
  3. 当我们引入其他框架的时候,需要删除这个框架依赖的日志框架

日志的使用

默认配置

    //记录器Logger logger = LoggerFactory.getLogger(getClass());@Testpublic void contextLoads() {//System.out.println();//日志的级别;//由低到高   trace<debug<info<warn<error//可以调整输出的日志级别;日志就只会在这个级别以以后的高级别生效logger.trace("这是trace日志...");logger.debug("这是debug日志...");//SpringBoot默认给我们使用的是info级别的,没有指定级别的就用SpringBoot默认规定的级别;root级别logger.info("这是info日志...");logger.warn("这是warn日志...");logger.error("这是error日志...");}
日志输出格式:%d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度%logger{50} 表示logger名字最长50个字符,否则按照句点分割。 %msg:日志消息,%n是换行符-->%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

SpringBoot修改日志的默认设置

# 也可以指定一个包路径 logging.level.com.xxx=error
logging.level.root=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 文件中

指定配置

  • 给类路径下放上每个日志框架的自己的配置文件即可
  • SpringBoot就不需要使用其他配置了
  • logback.xml:直接被日志框架识别
  • logback-spring.xml:日志框架就不直接加载日志配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能
  • 如果使用logback.xml作为日志的配置文件,还需要使用profile功能,否则会报错
Logging System Customization
Logback logback-spring.xmllogback-spring.groovylogback.xml or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

SpringNBoot日志配置相关推荐

  1. qt能使用logback_Spring boot使用logback实现日志配置

    欢迎关注头条号:老顾聊技术 精品原创技术分享,知识的组装工 目录 前言 常用日志组件 什么是日志门面和日志实现 常见的日志框架 日志使用 @slf4j注解 日志的配置 logback-spring配置 ...

  2. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  3. django 完整日志配置

    django 完整日志配置 django中的log需要在settings.py中配置 import timecur_path = os.path.dirname(os.path.realpath(__ ...

  4. vsftpd日志配置及查看——可以将vsftpd记录在系统日志里

    vsftpd日志配置及查看 vsftpd ftp服务器的日志设置,可以通过修改主配置文件/etc/vsftpd.conf实现.主配置文件中与日志设置有关的选项包括xferlog_enable .xfe ...

  5. Oracle 监听器日志配置与管理

    --======================== -- Oracle 监听器日志配置与管理 --========================     Oracle 监听器是一个服务器端程序,用 ...

  6. Spring Boot与日志 ——日志框架、日志配置||SLF4j使用||SpringBoot日志关系||切换日志框架

    1.日志框架 SLF4j使用 1.如何在系统中使用SLF4j 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法: 给系统里面导入slf4j的jar和 lo ...

  7. Spring boot指定日志配置

    指定日志配置 给类路径下,放上每个日志框架,自己的配置文件即可 SpringBoot就不使用,默认配置的了 Spring文件名区别 logback.xml 直接就被日志框架识别了 logback-sp ...

  8. Spring boot默认日志配置

    默认日志配置 查看依赖包 Logging Base.xml 基本配置 Defaults.xml 默认配置

  9. filebeat获取nginx的access日志配置

    filebeat获取nginx的access日志配置产生nginx日志的服务器即生产者服务器配置: 拿omp.chinasoft.com举例: 1.nginx.conf主配置文件添加日志格式log_f ...

最新文章

  1. HttpPost导包遇到的问题
  2. Hadoop集群搭建(八:Hive的安装配置)
  3. glibc-2.23_malloc_consolidate_浅析
  4. 为什么重写equals()和hashcode()
  5. mysql 重启失败,重启MySQL服务失败
  6. Balanced Ternary String
  7. C# 枚举(Enum)
  8. 写出float x 与“零值”比较的if语句——一道面试题分析
  9. mock方法常用框架_基于MOCK对象和JUNIT框架测试DAO
  10. PHPExcel用法有感
  11. Kubernetes 网络部分
  12. IIS网站无法播放视频的解决方法
  13. 9. Document getElementsByName() 方法
  14. 使用uddi sdk发布服务到UDDI时的安全配置
  15. STM32——库函数版——ADXL345驱动程序
  16. 软件测试(四):软件测试用例设计
  17. lol2.27服务器维护,lol2月27日维护公告
  18. css3波浪js特效代码
  19. 怎么把zip转换html,如何压缩为rar格式 怎样把rar格式变成zip格式
  20. 2-2 Aruba控制器 无线漫游优化 2020

热门文章

  1. 怎么形容智能冰激凌机器人_有关于形容描写冰激凌的句子及图片
  2. 多元有序logistic回归分析_一文详述:观察性研究中的logistic回归分析思路
  3. imp命令导入指定表_Oracle—— 导入/导出 数据:exp,imp 命令
  4. jar 退出run_Java终止线程的三种方式
  5. 【HDU - 1533】Going Home(网络流,二分图最优匹配,KM算法)
  6. 【CodeForces - 485C】Bits (二进制相关,数学,贪心)
  7. 【牛客 - 303K第十五届浙江大学宁波理工学院程序设计大赛(同步赛)】Technology Tree(树形dp,tricks)
  8. 【AtCoder - 4242 】To Infinity(思维)
  9. 从零开始学视觉Transformer(2):图像与Transformer基础
  10. (ECC)椭圆曲线加密算法原理和C++实现源码