为什么我配置好了logback-spring.xml仅在测试方法中有效

来源:3-2 日志的使用

in9

2018-12-17

我在学习到第七章发现,我在工程方法用任何 log.info(), log.error(), log.warn(),都不会在控制台输出,也不会在我配置好的路径下创建任何log文件。但在带有@Test的方法中才会生效。配置文件确认和老师的一样。而且已经装了lombok,在类上加有@Slf4j注解。项目运行一切正常,希望老师可以帮忙看下,谢谢。
以下为logback-spring.xml配置:

<?xml version="1.0" encoding="UTF-8" ?>

<configuration>


    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
       <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %d - %msg%n
            </pattern>
       </layout>
    </appender>

    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>C:/data/shop/info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>C:/data/shop/error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <root level="info">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
        <appender-ref ref="fileErrorLog"/>
    </root>
</configuration>

以下为application.yml配置:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://127.0.0.1/shop?characterEncoding=utf-8&useSSL=false
  jpa:
    show-sql: true
  jackson:
    default-property-inclusion: non_null
server:
  servlet:
    context-path: /shop

写回答

1回答

廖师兄

2018-12-17

你试试换个思路解决。

  1. 先运行我的源码,是否正常

  2. 如果正常,说明不是电脑或者Idea的问题,肯定是代码的问题

  3. 代码问题,找差异,第一确认springboot版本是否相同

0
2
廖师兄
回复
战神40
这就是我的学习方法,我去学一门课程遇到问题我就会采取源码对照的方式解决。 提问里只给出一个文件的源码。这样找不到原因的,因为你运行的是整个项目,不是独立文件。
2020-05-15
共2条回复

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程