logback.xml:
<configuration>
<!--日志入库的配置,这里通过springProperty标签直接读取application.yml中数据库的配置-->
<springProperty scope="context" name="driverClassName" source="portal.jdbc.driverClassName"
defaultValue="com.mysql.jdbc.Driver"/>
<springProperty scope="context" name="jdbcUrl" source="portal.jdbc.jdbcUrl"/>
<springProperty scope="context" name="username" source="portal.jdbc.username"/>
<springProperty scope="context" name="password" source="portal.jdbc.password"/>
<!-- 输出到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 输出格式 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- error级别单独记录 -->
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/error.log</file>
<!-- 以day为单位自动回滚 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/error/error-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<!-- error级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- warn级别单独记录 -->
<appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/warn.log</file>
<!-- 以day为单位自动回滚 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/warn/warn-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<!-- 最多记录30天日志 -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 文件大小到达30MB自动打包 -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<!-- warn级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/info/info-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${PID} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 将WARN级别日志写入数据库 -->
<appender name="WARN-MYSQL" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
<dataSource class="org.apache.commons.dbcp.BasicDataSource">
<driverClassName>${driverClassName}</driverClassName>
<url>${jdbcUrl}</url>
<username>${username}</username>
<password>${password}</password>
</dataSource>
</connectionSource>
<!-- WARN级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="ERROR-MYSQL" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
<dataSource class="org.apache.commons.dbcp.BasicDataSource">
<driverClassName>${driverClassName}</driverClassName>
<url>${jdbcUrl}</url>
<username>${username}</username>
<password>${password}</password>
</dataSource>
</connectionSource>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 输出某个包下面的日志-->
<logger name="" level="debug"
additivity="true">
<appender-ref ref="STDOUT"/>
</logger>
<!-- 根,所有logger的祖先 -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="errorAppender"/>
<appender-ref ref="infoAppender"/>
<appender-ref ref="warnAppender"/>
<appender-ref ref="WARN-MYSQL"/>
<appender-ref ref="ERROR-MYSQL"/>
</root>
</configuration>
application.yml:
## portal DB
portal.jdbc:
type: mysql
driverClassName: com.mysql.jdbc.Driver
# jdbcUrl: jdbc:mysql://10.100.1.85:3306/frms-mt-mgr2.2?useUnicode=true&characterEncoding=UTF-8
jdbcUrl: jdbc:mysql://10.100.1.85:3306/frms-mt-mgr2.3?useUnicode=true&characterEncoding=UTF-8
# jdbcUrl: jdbc:mysql://127.0.0.1:3306/frms-mt-mgr2.1?useUnicode=true&characterEncoding=UTF-8
username:
# password:
password:
connectionTestQuery: SELECT 1 FROM DUAL
maximumPoolSize: 10
minimumIdle: 1
maxLifetime: 2000000
connectionTimeout: 30000
idleTimeout: 30000
转载于:https://my.oschina.net/yejw/blog/1551697
分享到:
相关推荐
然后,我们可以添加一个`<springProperty>`标签来读取`application.properties`中的日志级别设置,例如: ```xml <springProperty name="logLevel" source="logging.level.root"/> ``` 3. **定义日志级别**: ...
2. **<springProperty>**:用于读取Spring应用的属性配置,使日志配置更灵活。 3. **<appender>**:定义日志输出的目标,如控制台、文件、数据库等。 4. **<encoder>**:配置日志格式,如日期、级别、logger名等。 5...
在`pom.xml`文件中,你需要添加Logback的依赖项,确保如下所示: ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> ``` 接下来,配置Logback。...
Maven通过`<build>`标签下的`<resources>`配置来管理这些资源文件的编译和打包过程。本文将详细解析如何通过POM配置文件控制资源文件的过滤行为。 #### Maven资源过滤简介 资源过滤是一种在构建过程中替换资源文件...
通过以上步骤,我们成功地在SpringBoot中使用logback和`ogstash-logback-encoder`优化了异常堆栈的输出,使其更简洁、更具针对性。这将帮助开发者更快地定位问题,提高开发效率。完整的代码示例可以参考提供的链接。...
这通常通过在`<layout>`元素中使用`%X`转换词来实现, `%X{key}` 会打印出MDC中对应键的值。例如,我们可以在`<pattern>`中添加`%X{sessionId}`,这样每次记录日志时都会输出session ID。 以下是一个基本的`logback...
在 Springboot 项目中,我们可以使用 Slf4j 提供的 API 来记录日志,然后使用 Logback 框架来配置日志记录的相关参数。通过配置 logback-spring.xml 文件,我们可以将日志输出到控制台或文件中。
spring使用logback的扩展,使用起来非常方便。在web.xml中配置: <context-param> <param-name>logbackConfigLocation</param-name> <param-value>/WEB-INF/conf/logback.xml</param-value> </context-param> ...
<include resource="org/springframework/boot/logging/logback/base.xml"/> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>logs/app.log</file> <encoder> <pattern>%d{yyyy-MM-dd...
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- <scope>provided</scope> --> </dependency> 另外需要去掉依赖: <dependency> <groupId>org....
Spring Boot 使用 Logback 输出日志文件 Spring Boot 提供了多种日志记录工具,包括 Logback、Log4J2 和 Java Util Logging。默认情况下,Spring Boot 使用 Logback 作为日志记录工具。在日志记录过程中,我们可以...
在Spring框架的XML配置中,`<context-param>`和`<init-param>`是两种不同的参数配置方式,它们各自有特定的用途和作用范围。这里我们将深入探讨这两种参数的区别,并通过实际应用来理解它们。 首先,`<context-...
在应用启动后,Logback会读取配置文件并开始按照设定的方式记录日志。通过查看控制台输出或日志文件,可以验证配置是否生效。 总结,配置Spring Boot的Logback涉及多个方面,包括日志级别、输出目的地、日志格式和...
一个基本的`logback-spring.xml`配置文件包括以下几个主要部分:`<configuration>`、`<springProperty>`、`<appender>`、`<logger>`和`<root>`。 3. **`<springProperty>`标签**: 用于引用Spring的环境属性,...
<include resource="org/springframework/boot/logging/logback/defaults.xml" /> <springProperty scope="context" name="springAppName" source="spring.application.name" /> <springProperty scope="context...
综上所述,搭建Mybatis框架环境涉及的主要步骤是:添加相关依赖、配置logback.xml和mybatis-config.xml文件,创建Mapper.xml映射文件,最后编写测试类验证配置。完成这些步骤后,开发者就可以在项目中方便地使用...
本教程将深入讲解如何在Spring Boot项目中配置和使用Logback,实现日志的info和error级别分类存放,以及每日生成新的日志文件。 首先,Logback是由Ceki Gülcü创建的,它是Log4j的继任者,提供了更高的性能和更...
在 logback 配置中,我们需要在 `pom.xml` 中引入 logback 相关的依赖,如下所示: ```xml <dependencies> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> ...
用于日志配置