`
wx1569063608
  • 浏览: 22636 次
文章分类
社区版块
存档分类
最新评论

springboot使用logback的<springProperty/>读取配置文件中的配置项

 
阅读更多

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&amp;characterEncoding=UTF-8
  jdbcUrl: jdbc:mysql://10.100.1.85:3306/frms-mt-mgr2.3?useUnicode=true&amp;characterEncoding=UTF-8
#  jdbcUrl: jdbc:mysql://127.0.0.1:3306/frms-mt-mgr2.1?useUnicode=true&amp;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

分享到:
评论

相关推荐

    SpringBoot中自定义日志配置logback-spring.xml示例源码

    然后,我们可以添加一个`&lt;springProperty&gt;`标签来读取`application.properties`中的日志级别设置,例如: ```xml &lt;springProperty name="logLevel" source="logging.level.root"/&gt; ``` 3. **定义日志级别**: ...

    SpringBoot Logback配置,SpringBoot日志配置

    2. **&lt;springProperty&gt;**:用于读取Spring应用的属性配置,使日志配置更灵活。 3. **&lt;appender&gt;**:定义日志输出的目标,如控制台、文件、数据库等。 4. **&lt;encoder&gt;**:配置日志格式,如日期、级别、logger名等。 5...

    SpringBoot-logback

    在`pom.xml`文件中,你需要添加Logback的依赖项,确保如下所示: ```xml &lt;dependency&gt; &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt; &lt;artifactId&gt;logback-classic&lt;/artifactId&gt; &lt;/dependency&gt; ``` 接下来,配置Logback。...

    解决Maven资源过滤的pom配置文件

    Maven通过`&lt;build&gt;`标签下的`&lt;resources&gt;`配置来管理这些资源文件的编译和打包过程。本文将详细解析如何通过POM配置文件控制资源文件的过滤行为。 #### Maven资源过滤简介 资源过滤是一种在构建过程中替换资源文件...

    在SpringBoot中使用logback优化异常堆栈的输出.doc

    通过以上步骤,我们成功地在SpringBoot中使用logback和`ogstash-logback-encoder`优化了异常堆栈的输出,使其更简洁、更具针对性。这将帮助开发者更快地定位问题,提高开发效率。完整的代码示例可以参考提供的链接。...

    SpringBoot+Logback实现一个简单的链路追踪功能

    这通常通过在`&lt;layout&gt;`元素中使用`%X`转换词来实现, `%X{key}` 会打印出MDC中对应键的值。例如,我们可以在`&lt;pattern&gt;`中添加`%X{sessionId}`,这样每次记录日志时都会输出session ID。 以下是一个基本的`logback...

    Springboot项目使用Slf4j将日志保存到本地目录的实现代码

    在 Springboot 项目中,我们可以使用 Slf4j 提供的 API 来记录日志,然后使用 Logback 框架来配置日志记录的相关参数。通过配置 logback-spring.xml 文件,我们可以将日志输出到控制台或文件中。

    logback-ext-spring

    spring使用logback的扩展,使用起来非常方便。在web.xml中配置: &lt;context-param&gt; &lt;param-name&gt;logbackConfigLocation&lt;/param-name&gt; &lt;param-value&gt;/WEB-INF/conf/logback.xml&lt;/param-value&gt; &lt;/context-param&gt; ...

    springboot整合logback保存日志到文件

    &lt;include resource="org/springframework/boot/logging/logback/base.xml"/&gt; &lt;appender name="FILE" class="ch.qos.logback.core.FileAppender"&gt; &lt;file&gt;logs/app.log&lt;/file&gt; &lt;encoder&gt; &lt;pattern&gt;%d{yyyy-MM-dd...

    springboot+mybatis+logback

    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-tomcat&lt;/artifactId&gt; &lt;!-- &lt;scope&gt;provided&lt;/scope&gt; --&gt; &lt;/dependency&gt; 另外需要去掉依赖: &lt;dependency&gt; &lt;groupId&gt;org....

    springboot+logback输出日志文件1

    Spring Boot 使用 Logback 输出日志文件 Spring Boot 提供了多种日志记录工具,包括 Logback、Log4J2 和 Java Util Logging。默认情况下,Spring Boot 使用 Logback 作为日志记录工具。在日志记录过程中,我们可以...

    spring配置中<context-param> 和<init-param>的 区别

    在Spring框架的XML配置中,`&lt;context-param&gt;`和`&lt;init-param&gt;`是两种不同的参数配置方式,它们各自有特定的用途和作用范围。这里我们将深入探讨这两种参数的区别,并通过实际应用来理解它们。 首先,`&lt;context-...

    springboot 详细配置logback

    在应用启动后,Logback会读取配置文件并开始按照设定的方式记录日志。通过查看控制台输出或日志文件,可以验证配置是否生效。 总结,配置Spring Boot的Logback涉及多个方面,包括日志级别、输出目的地、日志格式和...

    logback-spring.xml日志打印demo

    一个基本的`logback-spring.xml`配置文件包括以下几个主要部分:`&lt;configuration&gt;`、`&lt;springProperty&gt;`、`&lt;appender&gt;`、`&lt;logger&gt;`和`&lt;root&gt;`。 3. **`&lt;springProperty&gt;`标签**: 用于引用Spring的环境属性,...

    elk+springboot+kafka日志跟踪配置1

    &lt;include resource="org/springframework/boot/logging/logback/defaults.xml" /&gt; &lt;springProperty scope="context" name="springAppName" source="spring.application.name" /&gt; &lt;springProperty scope="context...

    搭建Mybatis框架环境.pdf

    综上所述,搭建Mybatis框架环境涉及的主要步骤是:添加相关依赖、配置logback.xml和mybatis-config.xml文件,创建Mapper.xml映射文件,最后编写测试类验证配置。完成这些步骤后,开发者就可以在项目中方便地使用...

    spring boot logback 实现

    本教程将深入讲解如何在Spring Boot项目中配置和使用Logback,实现日志的info和error级别分类存放,以及每日生成新的日志文件。 首先,Logback是由Ceki Gülcü创建的,它是Log4j的继任者,提供了更高的性能和更...

    logback日志配置demo

    在 logback 配置中,我们需要在 `pom.xml` 中引入 logback 相关的依赖,如下所示: ```xml &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt; &lt;artifactId&gt;logback-classic&lt;/artifactId&gt; ...

    Springboot 日志logback-spring.xml 配置文件

    用于日志配置

Global site tag (gtag.js) - Google Analytics