Java 如何在Spring Boot Web应用程序中打印到控制台
来自节点背景,spring boot中的console.log()等效于什么 例如,我希望在控制台中看到以下方法中的作业信息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); }
@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.');
}
}