如何在 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 语句
的适当请求
来自 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 语句
的适当请求