如何在 Spring 引导 Web 应用程序中打印到控制台

How to print to console in Spring Boot Web Application

来自 Node 背景,spring 引导中的 console.log() 等价于什么?

例如,我想通过以下方法在我的控制台中查看作业信息。

@RequestMapping(value = "jobposts/create", method = RequestMethod.POST)
public Job create(@RequestBody Job job){
    System.out.println(job);
    return jobRepository.saveAndFlush(job);
}

System.out.println();我知道如何在 Java 中执行此操作,但它似乎没有出现在我的控制台中。使用 IntelliJ。

您是否尝试过在日志配置文件中添加 console appender?这是您在 slf4j + logback 生态系统中可以做的事情

在 logback.xml、

<configuration>
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <timeZone>UTC</timeZone>
    </encoder>
</appender>
<logger name="com.yourcompany.packagename" level="INFO" additivity="false">
    <appender-ref ref="consoleAppender" />
</logger>
<root level="ERROR">
    <appender-ref ref="consoleAppender" />
</root>
</configuration>

System.out.println(job);就像你做的那样。

它打印出类似 yourpackage.Job@2g45e0f9

的内容

尝试使用调试模式执行您的代码,看看 post 方法是否会按要求执行。

这是@robocode 发布内容的补充。覆盖 Job class 中的 toString 方法以按照您希望的方式打印参数。

public class Job{
   String p1;
   int p2;
   .
   .
   @Override
   public String toString(){
      return "p1: "+p1+", p2: "+p2;
   }
}

更容易简单地对您的对象进行系统输出。

Job job = new Job();
System.out.println(job);

在您的 pom 文件中导入 log4j 依赖项

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

在您的控制器中定义记录器,例如:

private static Logger logger = LoggerFactory.getLogger(YourClassName.class);

然后使用

logger.info("your message");

您可以尝试将 Project Lombok 添加到您的 Maven 或 Gradle 文件中。

在 class 级别使用注释 @Slf4j 并在 class 的任意位置添加 log.info('text')

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MyController {
   
   public void getAll() {
      
      // log is already initialized
      // use it anywhere in the annotated class
      log.info('This is a test.');

   }
}

如果以上没有解决问题 确保您正在发出具有 sysout 语句

的适当请求