springboot+sl4j+mybatis-plus日志配置

application.yml

server:
  port: 8080
spring:
  datasource:
    dynamic:
      primary: db1 # 配置默认数据库
      datasource:
        db1: # 数据源1配置
          url: jdbc:mysql://localhost:3306/ggzy?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8
          username: root
          password: 1234
          driver-class-name: com.mysql.cj.jdbc.Driver
#        db2: # 数据源1配置
#          url: jdbc:mysql://localhost:3306/zjgjj?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8
#          username: root
#          password: 1234
#          driver-class-name: com.mysql.cj.jdbc.Driver
        db2: # 数据源2配置
          url: jdbc:sqlserver://192.168.136.128:1433;DatabaseName=ggzy;encrypt=false;
          username: sa
          password: 1216
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
      druid:
        initial-size: 1
        max-active: 20
        min-idle: 1
        max-wait: 60000
  autoconfigure:
    exclude:  com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 去除druid配置

mybatis-plus:
  mapper-locations: classpath:mapper/**/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
    #在生产环境,不想打印 SQL 日志,可以通过下面的配置关闭。
    #log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
socket:
  port: 8001
logging:
  # 指定项目启动的时候,读取哪个日志配置文件
  config: classpath:logback.xml
  # 指定具体的包中应用程序的日志记录和日志级别
  level:
    # debug低级别的信息不会输出
    com.abc.*: debug
    com.abc.newprog.mapper: debug
    org.springframework: INFO

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_HOME" value="/log"/>
    <!-- 定义日志格式  -->
    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] [%-30.30logger{30}] %msg%n"/>
    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 每天日志归档路径以及格式 -->
            <fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>1MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文件保留天数-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <logger name="org.*" level="INFO"/>
    <logger name="com.abc.*" level="debug"/>
    <logger name="org.springframework" level="INFO"/>
    <logger name="com.abc.newprog.mapper" level="debug" />-->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot 中,我们可以使用 SLF4J 日志框架来记录应用程序的日志。SLF4J 是一个简单的日志门面,它允许我们使用不同的日志框架,如 Logback、Log4j2 和 JDK 日志等,使用相同的 API 记录日志。 要在 Spring Boot 中使用 SLF4J,需要执行以下步骤: 1. 添加 SLF4J 依赖项: ```xml <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> ``` 2. 添加日志框架的实现依赖项,例如 Logback: ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> ``` 3. 在应用程序中创建日志对象并记录日志。 ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { private static final Logger logger = LoggerFactory.getLogger(MyClass.class); public void myMethod() { logger.debug("This is a debug log message."); logger.info("This is an info log message."); logger.warn("This is a warn log message."); logger.error("This is an error log message."); } } ``` 在上面的代码中,我们首先导入 SLF4J 的 Logger 和 LoggerFactory 类。然后,我们创建了一个 Logger 对象,并使用 getLogger() 方法指定了记录器名称。在 myMethod() 方法中,我们使用 Logger 对象记录了不同级别的日志消息。 需要注意的是,在使用 SLF4J 记录日志时,我们应该使用占位符来避免字符串拼接的开销,如下所示: ```java logger.info("The user {} logged in successfully.", username); ``` 这样做可以提高性能,并且避免潜在的安全漏洞。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值