SpringBoot结合LogBack日志的使用并且本地打印日志

灰太狼 2023-02-22 13:58 206阅读 0赞

项目结构:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTgxMTU0_size_16_color_FFFFFF_t_70

application.yml相关信息:

  1. #日志配置路径
  2. logging:
  3. config: classpath:logback-debug.xml
  4. videoRemote:
  5. #日志打印路径 定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径
  6. logPath: /idea2017/videoremote/log
  7. #日志名称前缀
  8. logName: videoremote
  9. #日志打印级别 INFO_FILE (INFO) ERROR_FILE (ERROR)
  10. level: INFO

Logback-debug.xml配置文件:

我这里从application中获取了日志打印路径

获取路径的方式

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false">
  3. <!-- 获取yml中的log地址 -->
  4. <springProperty scope="context" name="logPath" source="videoRemote.logPath" defaultValue="logdir"/>
  5. <springProperty scope="context" name="logName" source="videoRemote.logName" defaultValue="videoremote"/>
  6. <springProperty scope="context" name="logLevel" source="videoRemote.level" defaultValue="INFO"/>
  7. <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
  8. <property name="LOG_HOME" value="${logPath}" />
  9. <property name="AppName" value="${logName}" />
  10. <!-- 控制台输出 -->
  11. <appender name="STDOUT"
  12. class="ch.qos.logback.core.ConsoleAppender">
  13. <encoder
  14. class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  15. <!--格式化输出:%d{yyyy-MM-dd HH:mm:ss.SSS}表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  16. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  17. </encoder>
  18. </appender>
  19. <!-- 按照每天生成日志文件 -->
  20. <appender name="INFO_FILE"
  21. class="ch.qos.logback.core.rolling.RollingFileAppender">
  22. <rollingPolicy
  23. class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  24. <!--日志文件输出的文件名 -->
  25. <FileNamePattern>${LOG_HOME}/${AppName}.info.%d{yyyy-MM-dd}.%i.log
  26. </FileNamePattern>
  27. <!--日志文件保留天数 -->
  28. <MaxHistory>30</MaxHistory>
  29. <maxFileSize>100MB</maxFileSize>
  30. </rollingPolicy>
  31. <encoder
  32. class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  33. <!--格式化输出:%d{yyyy-MM-dd HH:mm:ss.SSS}表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  34. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  35. </encoder>
  36. </appender>
  37. <!-- 按照每天生成日志文件 -->
  38. <appender name="ERROR_FILE"
  39. class="ch.qos.logback.core.rolling.RollingFileAppender">
  40. <rollingPolicy
  41. class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  42. <!--日志文件输出的文件名 -->
  43. <FileNamePattern>${LOG_HOME}/${AppName}.error.%d{yyyy-MM-dd}.%i.log
  44. </FileNamePattern>
  45. <!--日志文件保留天数 -->
  46. <MaxHistory>30</MaxHistory>
  47. <maxFileSize>100MB</maxFileSize>
  48. </rollingPolicy>
  49. <encoder
  50. class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  51. <!--格式化输出:%d{yyyy-MM-dd HH:mm:ss.SSS}表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  52. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  53. </encoder>
  54. <!-- 允许打印警告日志到文件的过滤器 -->
  55. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  56. <level>WARN</level>
  57. <onMatch>ACCEPT</onMatch>
  58. <onMismatch>NEUTRAL</onMismatch>
  59. </filter>
  60. <!-- 允许打印错误日志到文件的过滤器 -->
  61. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  62. <!-- onMatch,onMismatch取值及含义 -->
  63. <!-- DENY:日志将立即被抛弃不再经过其他过滤器,最后一个filter的onMismatch使用 -->
  64. <!-- NEUTRAL:有序列表里的下个过滤器过接着处理日志,非最后一个filter的onMismatch使用 -->
  65. <!-- ACCEPT:日志会被立即处理,不再经过剩余过滤器,所有filter的onMatch使用 -->
  66. <level>ERROR</level>
  67. <onMatch>ACCEPT</onMatch>
  68. <onMismatch>DENY</onMismatch>
  69. </filter>
  70. </appender>
  71. <!--myibatis log configure -->
  72. <logger name="com.apache.ibatis" level="TRACE" />
  73. <logger name="java.sql.Connection" level="DEBUG" />
  74. <logger name="java.sql.Statement" level="DEBUG" />
  75. <logger name="java.sql.PreparedStatement" level="DEBUG" />
  76. <logger name="c.o.m" level="INFO" />
  77. <!-- 日志输出级别 -->
  78. <root level="${logLevel}">
  79. <appender-ref ref="STDOUT" />
  80. <appender-ref ref="INFO_FILE" />
  81. <appender-ref ref="ERROR_FILE" />
  82. </root>
  83. </configuration>

POM文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.3.1.RELEASE</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.xjgz.xxty</groupId>
  12. <artifactId>videoremote</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>videoremote</name>
  15. <description>Demo project for Spring Boot</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-web</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.mybatis.spring.boot</groupId>
  26. <artifactId>mybatis-spring-boot-starter</artifactId>
  27. <version>2.1.3</version>
  28. </dependency>
  29. <!-- mysql驱动 -->
  30. <dependency>
  31. <groupId>mysql</groupId>
  32. <artifactId>mysql-connector-java</artifactId>
  33. <scope>runtime</scope>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework.boot</groupId>
  37. <artifactId>spring-boot-devtools</artifactId>
  38. <scope>runtime</scope>
  39. <optional>true</optional>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework.boot</groupId>
  43. <artifactId>spring-boot-starter-tomcat</artifactId>
  44. <scope>provided</scope>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.springframework.boot</groupId>
  48. <artifactId>spring-boot-starter-test</artifactId>
  49. <scope>test</scope>
  50. <exclusions>
  51. <exclusion>
  52. <groupId>org.junit.vintage</groupId>
  53. <artifactId>junit-vintage-engine</artifactId>
  54. </exclusion>
  55. </exclusions>
  56. </dependency>
  57. <!-- 阿里druid数据库连接池依赖 -->
  58. <dependency>
  59. <groupId>com.alibaba</groupId>
  60. <artifactId>druid-spring-boot-starter</artifactId>
  61. <version>1.1.10</version>
  62. </dependency>
  63. <dependency>
  64. <groupId>com.alibaba</groupId>
  65. <artifactId>fastjson</artifactId>
  66. <version>1.2.35</version>
  67. </dependency>
  68. <dependency>
  69. <groupId>org.jdom</groupId>
  70. <artifactId>jdom</artifactId>
  71. <version>1.1.3</version>
  72. </dependency>
  73. <dependency>
  74. <groupId>org.springframework.boot</groupId>
  75. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  76. </dependency>
  77. </dependencies>
  78. <build>
  79. <plugins>
  80. <plugin>
  81. <groupId>org.springframework.boot</groupId>
  82. <artifactId>spring-boot-maven-plugin</artifactId>
  83. </plugin>
  84. </plugins>
  85. <resources>
  86. <resource>
  87. <filtering>true</filtering>
  88. <directory>src/main/resources</directory>
  89. <includes>
  90. <include>*.properties</include>
  91. <include>*.yml</include>
  92. <include>*.xml</include>
  93. <include>*/*.xml</include>
  94. </includes>
  95. </resource>
  96. </resources>
  97. </build>
  98. </project>

发表评论

表情:
评论列表 (有 0 条评论,206人围观)

还没有评论,来说两句吧...

相关阅读

    相关 logback

    没有使用logback,只使用了Simple Logging Facade for Java (SLF4J) Java的简单日志记录外观(SLF4J)可作为各种日志记录框架

    相关 springboot 打印

    在实际项目中,我们的程序都是运行在linux上,有错误时也不能在本地的控制台上直观看到,所有合理打印日志对于程序员迅速定位到错误; 我的项目是springboot,打印日志时