原因:SpringBoot默认使用slf4j日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉;

而我今天想引入log4j的时候,pom文件一直报错,显示找不到log4j的jar包,应当是2.0.3的springboot版本的原因;

在此就没再继续引入,而是采用了SpringBoot使用的slf4j的日志,有机会的话再测一下log4j和slf4j两种日志的效率对比。

一、application.yml中配置日志打印级别,默认是info(也可选择不同目录):

  1. #slf4j日志配置
  2. logging:
  3. # 配置级别
  4. level:
  5. #分包配置级别,即不同的目录下可以使用不同的级别
  6. com.sblueice.controller: debug

二、logback.xml中所有配置:

  配置打印文件的路径(一天一个,保存30天):

  1. <!-- 开发、测试环境 -->
  2. <springProfile name="dev,test">
  3. <!-- 定义日志存储的路径,不要配置相对路径 -->
  4. <property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" />
  5. </springProfile>
  6.  
  7.  配置打印sql日志:
  1.  <logger name="com.sblueice.mapper.UserMapper" level="DEBUG" />
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.  
  4. <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
  5. <property name="LOG_PATTERN"
  6. value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
  7.  
  8. <!-- 开发、测试环境 -->
  9. <springProfile name="dev,test">
  10. <!-- 定义日志存储的路径,不要配置相对路径 -->
  11. <property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" />
  12. </springProfile>
  13.  
  14. <!-- 生產環境 -->
  15. <springProfile name="pro">
  16. <!-- 定义日志存储的路径,不要配置相对路径 -->
  17. <property name="FILE_PATH" value="/user/lib/cccf/logs/cccf.%d{yyyy-MM-dd}.%i.log" />
  18. </springProfile>
  19.  
  20. <!-- 控制台输出日志 -->
  21. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  22. <encoder>
  23. <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
  24. <pattern>${LOG_PATTERN}</pattern>
  25. </encoder>
  26. </appender>
  27.  
  28. <!--每天生成一个日志文件,保存30天的日志文件。rollingFile是用来切分文件的 -->
  29. <appender name="rollingFile"
  30. class="ch.qos.logback.core.rolling.RollingFileAppender">
  31. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  32. <fileNamePattern>
  33. ${FILE_PATH}
  34. </fileNamePattern>
  35. <!-- keep 30 days' worth of history -->
  36. <maxHistory>30</maxHistory>
  37. <timeBasedFileNamingAndTriggeringPolicy
  38. class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  39. <!-- 日志文件的最大大小 -->
  40. <maxFileSize>10MB</maxFileSize>
  41. </timeBasedFileNamingAndTriggeringPolicy>
  42. </rollingPolicy>
  43.  
  44. <encoder>
  45. <pattern>${LOG_PATTERN}</pattern>
  46. </encoder>
  47. </appender>
  48. <!-- project default level -->
  49. <logger name="com.hiynn.cccf" level="INFO" />
  50.  
  51. <!-- 日志输出级别 -->
  52. <root level="INFO">
  53. <appender-ref ref="console" />
  54. <appender-ref ref="rollingFile" />
  55. </root>
  56.  
  57. <!--myibatis log configure-->
  58. <logger name="com.sblueice.mapper.UserMapper" level="DEBUG" />
  59. </configuration>

三、controller层输出打印日志(Java怎么没有着色。。。。)

  1. package com.sblueice.controller;
  2.  
  3. import java.util.List;
  4.  
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11.  
  12. import com.sblueice.services.UserService;
  13.  
  14. /**
  15. *
  16. * @author shaoz
  17. * @Date: 2019/10/09
  18. *
  19. */
  20.  
  21. @Controller
  22. public class UserController {
  23.  
  24. Logger logger = LoggerFactory.getLogger(getClass());
  25.  
  26. /**
  27. *
  28. * @Title: testLog
  29. * @Description: TODO(测试springboot自带的日志打印)
  30. * @param: @return
  31. * @return: String
  32. * @throws
  33. */
  34. @RequestMapping("/testLog")
  35. @ResponseBody
  36. public String testLog() {
  37.  
  38. // 级别由低到高 trace<debug<info<warn<error
  39. logger.trace("这是一个trace日志...");
  40. logger.debug("这是一个debug日志...");
  41. // SpringBoot默认是info级别,只会输出info及以上级别的日志
  42. logger.info("这是一个info日志...");
  43. logger.warn("这是一个warn日志...");
  44. logger.error("这是一个error日志...");
  45. String str = "https://www.cnblogs.com/steveshao/";
  46. logger.info("======欢迎访问无脚鸟的博客:{}\n", str);
  47.  
  48. return null;
  49. }
  50.  
  51. }

以上就是今天SpringBoot打印日志的过程,也借鉴了好多人的东西,目前找不到借鉴的链接了,如果有同学觉得我摘抄了您的原文,请联系我给您添加上原文链接哈。

springboot通过slf4j配置日志的更多相关文章

  1. SpringBoot整合Slf4j+logback日志框架

    一.Slf4j简单介绍与优势 1.介绍 Slf4j的全称是Simple Loging Facade For Java(Java简单日志门面),它仅仅是一个为Java程序提供日志输出的统一接口,并不是一 ...

  2. SpringBoot优雅地配置日志

    本文主要给大家介绍SpringBoot中如何通过sl4j日志组件优雅地记录日志.其实,我们入门 JAVA 的第一行代码就是一行日志,那你现在还在使用System.out.println("H ...

  3. SpringBoot(三) - Slf4j+logback 日志,异步请求,定时任务

    1.Slf4j+logback 日志 SpringBoot框架的默认日志实现:slf4j + logback: 默认日志级别:info,对应了实际生产环境日志级别: 1.1 日志级别 # 常见的日志框 ...

  4. springboot下slf4j配置

    我们在引用的时候直接写 private static final Logger logger = LoggerFactory.getLogger(XXXServiceImpl.class); log. ...

  5. JAVAEE——SpringBoot日志篇:日志框架SLF4j、日志配置、日志使用、切换日志框架

    Spring Boot 日志篇 1.日志框架(故事引入) 小张:开发一个大型系统: ​ 1.System.out.println(""):将关键数据打印在控制台:去掉?写在一个文件 ...

  6. 【2.0】使用默认日志slf4j配置

    一.SpringBoot日志简介 SpringBoot使用Commons Logging进行所有内部日志记录,但底层日志实现保持开放状态.为Java Util Logging,Log4j2和Logba ...

  7. springboot(三)配置日志

    github代码:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-serviceSLF ...

  8. 在android中配置 slf4j + log4j 日志记录框架

    需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j ...

  9. SpringBoot整合log4j2进行日志配置及防坑指南

    写在前面 最近项目经理要求将原先项目中的日志配置logBack,修改为log4j2,据说是log4j2性能更优于logback,具体快多少,网上有说快10多倍,看来还是很快的,于是新的一波挑战又开始了 ...

随机推荐

  1. CodeForces - 999B Reversing Encryption

    B - Reversing Encryption A string s of length n can be encrypted by the following algorithm: iterate ...

  2. tarjan缩点——在农场万圣节Trick or Treat on the Farm

    一个房间能到另一个房间,有向图,奶牛从自己编号(1到n)的点出发,如果回到以前到过的点就停止,问每头奶牛可以经过几个点: 情况分两种, 一,奶牛在环上,能走的是环的大小,二,一条链连接一个环,大小是链 ...

  3. MySQL数据分析-(10)SQL基础操作之表操作

    大家好,我是jacky,很高兴跟大家继续分享MySQL数据分析实战课程,前面我们学习了库层面增删改查的SQL语句,这次课jacky将给大家介绍表层面的增删改查, (一)本课时的学习逻辑 表层面的增删改 ...

  4. jar包中的依赖jar版本冲突

    背景,项目中之前引入了一个 图片上传的jar <groupId>commons-fileupload</groupId> <artifactId>commons-f ...

  5. [题解] [SDOI2015] 序列统计

    题面 题解 设 \(f[i][j]\) 代表长度为 \(i\) 的序列, 乘积模 \(m\) 为 \(j\) 的序列有多少个 转移方程如下 \[ f[i + j][C] = \sum_{A*B\equ ...

  6. 黑马vue---56-58、vue组件创建的三种方式

    黑马vue---56-58.vue组件创建的三种方式 一.总结 一句话总结: 不论是哪种方式创建出来的组件,组件的 template 属性指向的模板内容,必须有且只能有唯一的一个根元素 1.使用 Vu ...

  7. ArcGIS超级工具SPTOOLS-锐角检查,获得内角并判断是否凸多边形,获得线(面)两个折点方向

    1.1  锐角检查 操作视频: https://weibo.com/tv/v/HCNNXhm5F?fid=1034:4392479009475111 可以是面.线夹角锐角检查 输出锐角点的位置和角度( ...

  8. ViewPager翻页控件简单使用方法

    例子布局文件: 主activity布局文件:activity_view_pager.xml <?xml version="1.0" encoding="utf-8& ...

  9. AlarmManager(闹钟服务)

    1.Timer类与AlarmManager类区别: 对Timer就是定时器,一般写定时任务的时候 肯定离不开他,但是在Android里,他却有个短板,不太适合那些需要长时间在后台运行的 定时任务,因为 ...

  10. MySQL 判断数据库和数据表是否存在

    MySQL 判断数据库和数据表是否存在 如何使用SQL查询语句,判断数据库和数据表是否存在? 1.判断数据库是否存在 查询SQL如下: select * from information_schema ...