9、springcloud整合logback打印sql語句


Logback是由log4j創始人設計的又一個開源日志組件。logback當前分成三個模塊:logback-core、logback- classic和logback-access。logback-core是其它兩個模塊的基礎模塊。logback-classic是log4j的一個 改良版本。此外logback-classic完整實現SLF4J API使你可以很方便地更換成其它日志系統如log4j或JDK14 Logging。logback-access訪問模塊與Servlet容器集成提供通過Http來訪問日志的功能。 Logback是要與SLF4J結合起來用的。

Logbacklog4j是非常相似的,如果你對log4j很熟悉,那對logback很快就會得心應手。spring boot內部使用Commons Logging來記錄日志,但也保留外部接口可以讓一些日志框架來進行實現,例如Java Util Logging,Log4J2還有Logback。如果想用某一種日志框架來進行實現的話,就必須先進行配置,默認情況下spring boot使用Logback作為日志實現的框架。spring boot從控制台打印出來的日志級別只有ERROR, WARN 還有INFO。

1)如果你想要打印debug級別的日志,可以通過application.yml文件配置:

debug:

  true

 

也可以在啟動腳本添加參數:

   java -jar d: \sc-xxx.jar --debug

 

2 配置logging.level.*來具體輸出哪些包的日志級別

 logging:

  level:

    root: INFO

    org.springframework.web: DEBUG

    org.hibernate: ERROR

 

 

(3)  將日志輸出到文件

 默認情況下spring boot是不將日志輸出到日志文件中,但可以通過在application.yml文件中配置logging.file文件名稱和logging.path文件路徑,將日志輸出到文件

 

logging:

  path: F:\\springcloudLog

  file: info.log

  level:

    root: info

 

 

 

 

備注:

A、 這里若不配置具體的包的日志級別,日志文件信息將為空

B、若只配置logging.path,那么將會在F:\ springcloudLog文件夾生成一個日志文件為spring.log(ps:該文件名是固定的,不能更改)。如果path路徑不存在,會自動創建該文件夾

C、若只配置logging.file,那將會在項目的當前路徑下生成一個info.log日志文件。這里可以使用絕對路徑如,會自動在d盤下創建文件夾和相應的日志文件。

logging:

file: d:\\ springcloudLog \\info.log

 

D、logging.path和logging.file同時配置,不會在這個路徑有F:\ springcloudLog \ info.log日志生成,logging.path和logging.file不會進行疊加(要注意)

F、logging.path和logging.file的value都可以是相對路徑或者絕對路徑

這就是基礎的日志配置,可以直接在application.yml配置,還可以在classpath路徑下,通過定義具體的日志文件來配置,例如:logback.xml

 

1、 新建項目sc-eureka-client-provider-logback,對應的pom.xml文件如下

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

 

<groupId>spring-cloud</groupId>

<artifactId>sc-eureka-client-provider-logback</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>

 

<name>sc-eureka-client-provider-logback</name>

<url>http://maven.apache.org</url>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.4.RELEASE</version>

</parent>

 

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Finchley.RELEASE</version>

<type>pom</type>

<scope>import</scope>

</dependency>

 

</dependencies>

</dependencyManagement>

 

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

</properties>

 

<dependencies>

<!-- 說明是一個 eureka client -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

</dependency>

 

<!-- spring boot實現Java Web服務 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<!-- 把tomcat-jdbc連接池排除掉,這樣spring-boot就會尋找是否有HikariCP可用 -->

<exclusions>

<exclusion>

<groupId>org.apache.tomcat</groupId>

<artifactId>tomcat-jdbc</artifactId>

</exclusion>

</exclusions>

</dependency>

 

<dependency>

<groupId>com.zaxxer</groupId>

<artifactId>HikariCP</artifactId>

</dependency>

 

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

 

 

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.3.2</version>

</dependency>

 

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.2</version>

</dependency>

 

</dependencies>

</project>

 

 

 

 

可以到默認已經引入logbackjar

 

 

 

 

 

2、 新建spring boot 啟動類LogbackApplication.java

 

package sc.provider.logback;

 

//import org.mybatis.spring.annotation.MapperScan;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

 

@EnableEurekaClient

@SpringBootApplication

//@MapperScan(basePackages="sc.provider.logback.dao")

public class LogbackApplication {

 

public static void main(String[] args) {

 

SpringApplication.run(LogbackApplication.class, args);

}


}

 

 

 

 

3、 新建配置文件bootstarp.ymlapplication.yml

 

bootstarp.yml

 

server:

  port: 7200

 

 

 

 

application.yml

 

spring:

  application:

    name: sc-eureka-client-provider-logback

  datasource:

    driverClassName: com.mysql.jdbc.Driver

    url: jdbc:mysql://localhost:3306/sc?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8

    username: root

    password: root

    type: com.zaxxer.hikari.HikariDataSource

    hikari:

      minimum-idle: 5

      maximum-pool-size: 15

      auto-commit: true

      idle-timeout: 30000

      pool-name: DatebookHikariCP

      max-lifetime: 1800000

      connection-timeout: 30000

      connection-test-query: SELECT 1

 

eureka:

  client:

    registerWithEureka: true #是否將自己注冊到Eureka服務中,默認為true

    fetchRegistry: true #是否從Eureka中獲取注冊信息,默認為true

    serviceUrl:

      defaultZone: http://localhost:5001/eureka/

 

mybatis:

  mapper-locations: classpath:sc/provider/logback/dao/*.xml

  config-location: classpath:mybatis-config.xml

  type-aliases-package: sc.provider.logback.model

  

logging:

  level:

sc.provider.logback.dao: debug

 

 

備注:

可以看到配置文件application.yml多了如下配置項

 

 

 

 

 

4、 項目其他文件如下圖

 

 

 

 

 

5、 啟動注冊中心sc-eureka-server后,啟動項目sc-eureka-client-provider-logback

 

6、 驗證sc-eureka-client-provider-logback是否啟動成功

 

 

 

 

 

7、 訪問相關接口看看是否能打印sql語句,例如訪問獲取用戶接口

http://127.0.0.1:7200/user/getUser/3

 

 

 

 

查看控制台:

 

 

 

源碼:

https://gitee.com/hjj520/spring-cloud-2.x/tree/master/sc-eureka-client-provider-logback


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM