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

Java 如何在Spring Boot Web应用程序中打印到控制台,java,spring,spring-boot,spring-web,Java,Spring,Spring Boot,Spring Web,来自节点背景,spring boot中的console.log()等效于什么 例如,我希望在控制台中看到以下方法中的作业信息 @RequestMapping(value = "jobposts/create", method = RequestMethod.POST) public Job create(@RequestBody Job job){ System.out.println(job); return jobRepository.saveAndFlush(job); }

来自节点背景,spring boot中的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。

您是否尝试在日志配置文件中添加控制台附加程序。。?以下是您在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>

UTC
系统输出打印LN(作业)就像你做的那样

它打印的东西就像你的包裹一样。Job@2g45e0f9


尝试使用调试模式执行您的代码,并查看post方法是否会按必须的方式执行。

这是@robocode发布的内容之外的内容。重写
Job
类中的
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>
然后使用

logger.info("your message");

您可以尝试将ProjectLombok添加到Maven或Gradle文件中

在类级别使用注释
@Slf4j
,并在类中的任何位置添加
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语句。您指的是web浏览器控制台吗?@SimonBerthiaume不抱歉,我指的是IDE中的控制台。我可以看到它像这样打印日志<代码>2018-02-17 13:51:10.916调试31564---[restartedMain]o.s.w.c.s.StandardServleteEnvironment:添加具有最低搜索优先级的PropertySource“servletConfigInitParams”除非您明确构建的应用程序是从命令行操作的,直接输出到System.our和System.err被认为是不好的做法,但它应该可以工作。应该做的是在logback或log4j之上使用SLF4J之类的日志框架。@SimonBerthiaume哦,好吧,我不知道这一点。我将研究如何为此使用框架。该框架的目标是开发/生产设置吗?所以它只会在dev中运行时做日志?哦,好的,我看到了!现在..有办法打印作业的内容吗?您应该在返回实例变量(或任何您想要的)的类作业方法内部实现,而不是像ID一样的东西。因此可以编写
System.out.println(job.getSomething())以打印内容。请参阅java documantation中的setter和getter。当然,您可以重写toString()方法来收集对象内容的所有信息,然后调用
System.out.println(job.toString())
将它们全部打印出来。
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.');

   }
}