Spring Boot 配置 SLF4J日志

1 SLF4J日志

SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。

SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。

Logging API实现既可以选择直接实现SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。

2 logback.xml(配置文件)


   
   
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!-- 日志存放路径 -->
  4. <!-- Linux系统日志存放路径 -->
  5. <!--<property name="log.path" value="/home/logs" />-->
  6. <!-- windows系统日志存放路径 -->
  7. <property name="log.path" value="d:/logs" />
  8. <!-- 日志输出格式 -->
  9. <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
  10. <!-- 控制台输出 -->
  11. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  12. <encoder>
  13. <pattern>${log.pattern} </pattern>
  14. </encoder>
  15. </appender>
  16. <!-- 系统日志输出 -->
  17. <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
  18. <file>${log.path}/sys-info.log </file>
  19. <!-- 循环政策:基于时间创建日志文件 -->
  20. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  21. <!-- 日志文件名格式 -->
  22. <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log </fileNamePattern>
  23. <!-- 日志最大的历史 60天 -->
  24. <maxHistory>60 </maxHistory>
  25. </rollingPolicy>
  26. <encoder>
  27. <pattern>${log.pattern} </pattern>
  28. </encoder>
  29. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  30. <!-- 过滤的级别 -->
  31. <level>INFO </level>
  32. <!-- 匹配时的操作:接收(记录) -->
  33. <onMatch>ACCEPT </onMatch>
  34. <!-- 不匹配时的操作:拒绝(不记录) -->
  35. <onMismatch>DENY </onMismatch>
  36. </filter>
  37. </appender>
  38. <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  39. <file>${log.path}/sys-error.log </file>
  40. <!-- 循环政策:基于时间创建日志文件 -->
  41. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  42. <!-- 日志文件名格式 -->
  43. <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log </fileNamePattern>
  44. <!-- 日志最大的历史 60天 -->
  45. <maxHistory>60 </maxHistory>
  46. </rollingPolicy>
  47. <encoder>
  48. <pattern>${log.pattern} </pattern>
  49. </encoder>
  50. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  51. <!-- 过滤的级别 -->
  52. <level>ERROR </level>
  53. <!-- 匹配时的操作:接收(记录) -->
  54. <onMatch>ACCEPT </onMatch>
  55. <!-- 不匹配时的操作:拒绝(不记录) -->
  56. <onMismatch>DENY </onMismatch>
  57. </filter>
  58. </appender>
  59. <!-- 用户访问日志输出 -->
  60. <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
  61. <file>${log.path}/sys-user.log </file>
  62. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  63. <!-- 按天回滚 daily -->
  64. <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log </fileNamePattern>
  65. <!-- 日志最大的历史 60天 -->
  66. <maxHistory>60 </maxHistory>
  67. </rollingPolicy>
  68. <encoder>
  69. <pattern>${log.pattern} </pattern>
  70. </encoder>
  71. </appender>
  72. <!-- 系统模块日志级别控制 -->
  73. <logger name="com" level="info" />
  74. <!-- Spring日志级别控制 -->
  75. <logger name="org.springframework" level="warn" />
  76. <root level="info">
  77. <appender-ref ref="console" />
  78. </root>
  79. <!--系统操作日志-->
  80. <root level="info">
  81. <appender-ref ref="file_info" />
  82. <appender-ref ref="file_error" />
  83. </root>
  84. <!--系统用户操作日志-->
  85. <logger name="sys-user" level="info">
  86. <appender-ref ref="sys-user"/>
  87. </logger>
  88. </configuration>

3 application.properties


   
   
  1. ## 日志配置
  2. logging.config=src/main/resources/logback.xml
  3. logging.level.com=trace

4 打印日志


   
   
  1. package com;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6. @SpringBootApplication
  7. public class TestConfigApplication {
  8. private static final Logger logger = LoggerFactory.getLogger(TestConfigApplication.class);
  9. public static void main(String[] args) {
  10. SpringApplication.run(TestConfigApplication.class, args);
  11. logger.error("这是error信息");
  12. logger.warn("这是warn信息");
  13. logger.info("这是info信息");
  14. logger.debug("这是debug信息");
  15. }
  16. }

5 调试结果

5.1 控制台打印结果 

5.2 日志文件

找到在logback.xml配置的日志文件路径,查看日志文件。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值