在resource下创建名为 logback-spring.xml 的配置文件,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="10 seconds">
  3.  
  4. <contextName>logback</contextName>
  5.  
  6. <springProperty scope="context" name="logPath" source="logging.file.path"/>
  7. <springProperty scope="context" name="logname" source="spring.application.name"/>
  8.  
  9. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  10. <target>System.out</target>
  11. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  12. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  13. <level>debug</level>
  14. </filter>
  15. <encoder>
  16. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  17. <!-- 设置字符集 FATAL_FILE-->
  18. <charset>UTF-8</charset>
  19. </encoder>
  20. </appender>
  21.  
  22. <!-- 时间滚动输出 level为 DEBUG 日志 -->
  23. <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  24. <!-- 正在记录的日志文件的路径及文件名 -->
  25. <!--<file>${logPath}/log_debug.log</file>-->
  26. <!--日志文件输出格式-->
  27. <encoder>
  28. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  29. <charset>UTF-8</charset> <!-- 设置字符集 -->
  30. </encoder>
  31. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  32. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  33. <!-- 日志归档 -->
  34. <fileNamePattern>${logPath}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  35. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  36. <maxFileSize>100MB</maxFileSize>
  37. </timeBasedFileNamingAndTriggeringPolicy>
  38. <!--日志文件保留天数-->
  39. <maxHistory>15</maxHistory>
  40. </rollingPolicy>
  41. <!-- 此日志文件只记录debug级别的 -->
  42. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  43. <level>debug</level>
  44. </filter>
  45. </appender>
  46.  
  47. <!-- 时间滚动输出 level为 INFO 日志 -->
  48. <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  49. <!-- 正在记录的日志文件的路径及文件名 -->
  50. <!--<file>${logPath}/log_info.log</file>-->
  51. <!--日志文件输出格式-->
  52. <encoder>
  53. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  54. <charset>UTF-8</charset>
  55. </encoder>
  56. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  57. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  58. <!-- 每天日志归档路径以及格式 -->
  59. <fileNamePattern>${logPath}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  60. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  61. <maxFileSize>100MB</maxFileSize>
  62. </timeBasedFileNamingAndTriggeringPolicy>
  63. <!--日志文件保留天数-->
  64. <maxHistory>15</maxHistory>
  65. </rollingPolicy>
  66. <!-- 此日志文件只记录info级别的 -->
  67. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  68. <level>info</level>
  69. <onMatch>ACCEPT</onMatch>
  70. <onMismatch>DENY</onMismatch>
  71. </filter>
  72. </appender>
  73.  
  74. <!-- 时间滚动输出 level为 ERROR 日志 -->
  75. <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  76. <!-- 正在记录的日志文件的路径及文件名 -->
  77. <!--<file>${logPath}/log_error.log</file>-->
  78. <!--日志文件输出格式-->
  79. <encoder>
  80. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  81. <charset>UTF-8</charset> <!-- 此处设置字符集 -->
  82. </encoder>
  83. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  84. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  85. <fileNamePattern>${logPath}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  86. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  87. <maxFileSize>100MB</maxFileSize>
  88. </timeBasedFileNamingAndTriggeringPolicy>
  89. <!--日志文件保留天数-->
  90. <maxHistory>15</maxHistory>
  91. </rollingPolicy>
  92. <!-- 此日志文件只记录ERROR级别的 -->
  93. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  94. <level>ERROR</level>
  95. </filter>
  96. </appender>
  97.  
  98. <!--开发环境:打印控制台-->
  99. <springProfile name="dev">
  100. <logger name="com.spring.boot.springbootdemo.mapper" level="debug"/>
  101. </springProfile>
  102.  
  103. <root level="info">
  104. <appender-ref ref="CONSOLE"/>
  105. <!--<appender-ref ref="DEBUG_FILE"/>-->
  106. <appender-ref ref="INFO_FILE"/>
  107. <appender-ref ref="ERROR_FILE"/>
  108. <!--<appender-ref ref="EMAIL"/>-->
  109. </root>
  110.  
  111. </configuration>

在 .yml 配置文件中添加如下配置: 其中 config指定的是配置文件 , file.path: 指定的是输出的日志文件的路径

  1. logging:
  2. config: classpath:logback-spring.xml
  3. file:
  4. path: /root/worksapce/ccsk/logs

springboot 配置将info、error、debug 分别输出到不同文件的更多相关文章

  1. SpringBoot配置(2) slf4j&logback

    SpringBoot配置(2) slf4j&logback 一.SpringBoot的日志使用 全局常规设置(格式.路径.级别) SpringBoot能自动适配所有的日志,而且底层使用slf4 ...

  2. springboot配置logback日志

    springboot配置logback日志 java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日 ...

  3. springboot配置logback.xml

    由于springboot框架自带log4j,因此我们只需配置下logback文件,即可, 在main/resources根目录下,新建logback-spring.xml文件,copy下述代码: &l ...

  4. springboot上传文件 & 不配置虚拟路径访问服务器图片 & springboot配置日期的格式化方式 & Springboot配置日期转换器

    1.    Springboot上传文件 springboot的文件上传不用配置拦截器,其上传方法与SpringMVC一样 @RequestMapping("/uploadPicture&q ...

  5. log4j日志输出到日志文件中和控制台中 +log4j配置详解

    1.引入log4j的jar包 https://mvnrepository.com/,可以找到log4j的jar和依赖. 2.创建log4j.properties,并配置log4j #设置日志的级别 , ...

  6. springboot 学习之路 4(日志输出)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  7. SpringBoot配置(1) 配置文件application&yml

    SpringBoot配置(1) 配置文件application&yml 一.配置文件 1.1 配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的. application ...

  8. 使用SpringBoot配置了 server.servlet.path后无效的解决方案

    一.问题描述 使用SpringBoot配置了 server.servlet.path后无效,访问时无法通过:http://127.0.0.1:8080/app/hello.html 访问. 二.解决方 ...

  9. SpringBoot 配置提示功能

    目的 配置自动提示的辅助功能可以让配置写起来更快,准确率大大提高. springboot jar 包含提供所有支持的配置属性细节的元数据文件.文件的目的是为了让 IDE 开发者在用户使用 applic ...

随机推荐

  1. 一个 java 文件的执行过程详解

    平时我们都使用 idea.eclipse 等软件来编写代码,在编写完之后直接点击运行就可以启动程序了,那么这个过程是怎么样的? 总体过程 我们编写的 java 文件在由编译器编译后会生成对应的 cla ...

  2. Spring的IOC常用注解(含源码)

    一.容器中注入组件 1,包扫描 + 组件标注注解 源码:Demo01_ComponentScan a)组件标注 @Controller @Service @Repository @Component ...

  3. 解决新版谷歌浏览器在http请求下无法开启麦克风问题

    1.在浏览器地址栏中输入"chrome://flags/#unsafely-treat-insecure-origin-as-secure", 2.将该选项置为Enabled, 3 ...

  4. Ubuntu pip版本的安装,卸载,查看,更新

    pip版本的安装: sudo apt-get install python3-pip pip版本的查看: pip3 --version pip3 -V pip更新: sudo pip3 install ...

  5. Android Studio 安装并使用genymotion

    一.安装genymotion与VirtualBox 1.安装 genymotion安装包:https://pan.baidu.com/s/1UTwvJv2pbHE4znBw91V19g virtual ...

  6. HDFS设置配额的命令

    1 文件个数限额 #查看配额信息 hdfs dfs -count -q -h /user/root/dir1 #设置N个限额数量,只能存放N-1个文件 hdfs dfsadmin -setQuota ...

  7. 安装RPM包或者源码包

    RPM工具 RPM他是以一种数据库记录的方式将我们所需要的套件安装到linux主机的一套管理程序关于RPM各个选项的含义如下-i:表示安装-v:表示可视化-h:表示安装进度在安装RPM包时,常用的附带 ...

  8. Python中if __name__ = "__main__"的理解

    通俗的理解__name__ ="__main__"的意思就是:当.py文件被直接运行时,if __name__ = "__main__"之下的代码快将被运行:当 ...

  9. 微信小程序应用开发-手动创建

    基础知识: index.wxml的代码为 Html,有很多标签,如等 index.wwss相当于css 即样式 index.js中有很多函数,可自定义 操作步骤: 删除app.json文件中page/ ...

  10. .Net5 下Dictionary 为什么可以在foreach中Remove

    在一个讨论群里,看见有人说Dictionary可以在foreach中直接调用Remove了,带着疑问,写了简单代码进行尝试 class Program { static void Main(strin ...