You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

咨询:Java中Slf4j的log.info日志无法在控制台显示如何解决?

解决@Slf4j的log.info无法在控制台输出的问题

从你的代码来看,你用了Lombok的@Slf4j注解注入日志,但控制台没输出log.info内容,大概率是日志级别未配置正确或者代码未被实际执行,下面一步步排查解决:

1. 先确认代码是否真的被执行到

先排除最基础的问题:你的transform()方法有没有被触发调用?

  • 检查TTD类是否在Spring的扫描范围内(比如包路径是否包含在@SpringBootApplication的扫描路径里)
  • 确认有没有通过Controller、定时任务或其他组件调用transform()方法,比如如果这是接口实现,有没有发送请求触发它
  • 可以临时在方法开头加一行System.out.println("transform方法执行了"),先验证方法是否被执行——如果这个都不输出,问题出在方法未被调用,和日志本身无关

2. 配置日志级别(核心解决步骤)

Spring Boot默认日志级别是WARN及以上,INFO级别日志默认不会输出到控制台,你需要显式配置:

方式一:通过application.properties/application.yml配置(推荐)

如果是Spring Boot项目,在src/main/resources的配置文件中添加:

# 针对你的TTD类单独开启INFO级别日志
logging.level.com.yourpackage.TTD=INFO
# 或者全局开启INFO级别(所有类的INFO日志都输出)
logging.level.root=INFO

注意把com.yourpackage替换成TTD类实际所在的包路径。

如果用yml格式:

logging:
  level:
    com.yourpackage.TTD: INFO
    root: INFO

方式二:用日志框架配置文件(比如logback.xml)

如果项目用logback(Spring Boot默认日志框架),可以在src/main/resources下创建logback.xml,配置ConsoleAppender并设置级别:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>

    <!-- 也可以单独给TTD类设置日志级别 -->
    <logger name="com.yourpackage.TTD" level="INFO"/>
</configuration>

3. 检查Lombok的配置是否正确

确保你的IDE已经安装了Lombok插件,并且项目依赖中已引入Lombok:
Maven依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

Gradle依赖:

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

如果没装插件,IDE可能无法识别@Slf4j,导致日志对象未正确注入。

4. 测试验证

配置完成后重启项目,触发transform()方法,应该就能在控制台看到log.info("String is:"+str1)的输出了。如果还是没效果,可以尝试把日志级别改成DEBUG,看是否有更多排查信息。

内容的提问来源于stack exchange,提问作者san

火山引擎 最新活动