SpringBoot 日志的用法

SPB自带日志

SpringBoot 自带slf4j日志,只需要加一个日志的配置文件就可以实现控制台+文件打印日志

 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <!--<property name="LOG_HOME" value="/var/jenkins_home/log/application_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}/SpringBoot-Slf4j_%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <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>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>20MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!-- 日志输出级别 -->
    <logger name="org.springframework" level="DEBUG"/>
    <logger name="com.hl.magic" level="DEBUG"/>
    <root level="DEBUG">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

控制台显示SQL

如果方便在控制台显示SQL,需要下载一个MyBatisLog插件

 在工具栏启用

 方便查看

日志重复引用问题处理

关于日志启动报错问题处理:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/Administrator/.m2/repository/ch/qos/logback/logback-classic/1.2.10/logback-classic-1.2.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/Administrator/.m2/repository/org/slf4j/slf4j-log4j12/1.7.30/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

在pom.xml下执行:mvn dependency:tree

 

 用分析包,从pom中排除掉,参考这个:需要下载maven helper 插件

slf4j的jar包冲突:Class path contains multiple SLF4J bindings_代码编程_积微成著

不过我最后是通过去掉这个依赖解决的

<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-test</artifactId>-->
<!--            <scope>test</scope>-->
<!--        </dependency>-->

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A:Spring Boot允许使用日志框架,如logback、Log4j2和Java自带的java.util.logging等,将日志记录到文件系统中。以下是一种将Spring Boot日志分文件存储的方法: 1.添加依赖 在`pom.xml`文件中添加logback依赖: ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> ``` 2.创建logback.xml文件 在项目的`src/main/resources/`目录下创建`logback.xml`文件,并在该文件中配置按照不同的日志级别输出到不同的文件中: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <!--定义日志文件路径--> <property name="log.dir" value="/path/to/logs"/> <!--控制台输出--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--INFO级别输出到info.log--> <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.dir}/info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.dir}/info.%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--ERROR级别输出到error.log--> <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.dir}/error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.dir}/error.%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--设置日志输出级别--> <root level="INFO"> <appender-ref ref="console"/> <appender-ref ref="info"/> <appender-ref ref="error"/> </root> </configuration> ``` 在这个配置文件中,我们指定了日志文件的路径,定义了三个输出端,分别为控制台、INFO级别的日志输出到info.log文件中,ERROR级别的日志输出到error.log文件中,并且设置了日志输出的级别为INFO。 3.测试 在应用程序中记录日志时,可以像下面这样: ```java private static final Logger logger = LoggerFactory.getLogger(YourClass.class); // ... logger.info("something happened!"); logger.error("something went wrong!", exception); ``` 启动应用程序后,将在日志文件夹中看到按照日志级别输出到不同文件中的日志。 注意:由于应用程序通常以Jar包的形式运行,所以应确保将`logback.xml`文件放置在classpath上,而不是在Jar包中的文件中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值