SpringBoot是一种快速构建基于Spring框架的应用程序的框架。在应用程序的开发和维护过程中,日志是必不可少的工具。SpringBoot提供了许多日志框架,如Logback、Log4j2和Java Util Logging等。本篇攻略将详细讲解SpringBoot log打印及输出方式,如下:
日志输出级别
SpringBoot使用Logback作为默认的日志框架,以下是常见的日至级别:
- ERROR:严重错误,应用程序可能无法正常运行
- WARN:警告,某些操作或配置不合理,但仍可正常运行
- INFO:消息,输出应用程序正常运行的状态信息
- DEBUG:调试,输出详细的调试信息,可用于定位问题
- TRACE:跟踪,输出最详细的日志信息,可用于分析问题
日志输出方式
SpringBoot提供了多种方式输出日志信息。可以在application.yml指定日志输出格式。
控制台输出
在开发阶段可以使用控制台输出日志信息,在application.yml中添加如下配置:
logging:
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} %highlight([%thread]) %-5level %logger{36} - %msg%n"
level:
root: info
以上配置将输出带有时间戳、线程名、日志级别、logger名称和消息的格式化日志信息。
文件输出
在生产环境中,通常需要将日志输出到文件中。以下是将日志输出到指定文件的配置方式。在application.yml中添加如下配置:
logging:
path: /var/log/application
file: myapp.log
pattern:
file: "%d{yyyy-MM-dd HH:mm:ss} %highlight([%thread]) %-5level %logger{36} - %msg%n"
level:
root: info
这将把日志输出到/var/log/application/myapp.log文件中。日志信息的格式同样可以在此处指定。
示例说明
以下是两个简单的代码示例,用于演示控制台和文件输出方式。
示例1:控制台输出
@RestController
public class MyController {
private final Logger logger = LoggerFactory.getLogger(MyController.class);
@GetMapping("/logtest")
public String getLogTest() {
logger.error("This is an error message");
logger.warn("This is a warning message");
logger.info("This is an info message");
logger.debug("This is a debug message");
logger.trace("This is a trace message");
return "Log test finished";
}
}
当访问/logtest时,将输出带有时间戳、线程名、日志级别、logger名称和消息的格式化日志信息。如下所示:
2021-07-25 22:03:12 [http-nio-8080-exec-1] ERROR c.s.s.controller.MyController - This is an error message
2021-07-25 22:03:12 [http-nio-8080-exec-1] WARN c.s.s.controller.MyController - This is a warning message
2021-07-25 22:03:12 [http-nio-8080-exec-1] INFO c.s.s.controller.MyController - This is an info message
示例2:文件输出
@RestController
public class MyController {
private final Logger logger = LoggerFactory.getLogger(MyController.class);
@GetMapping("/logtest")
public String getLogTest() {
logger.error("This is an error message");
logger.warn("This is a warning message");
logger.info("This is an info message");
logger.debug("This is a debug message");
logger.trace("This is a trace message");
return "Log test finished";
}
}
当访问/logtest时,将日志输出到/var/log/application/myapp.log文件中,同时输出格式与控制台输出相同。可以使用如下命令查看日志文件内容:
cat /var/log/application/myapp.log
将会输出与控制台相同的日志信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot log打印及输出方式 - Python技术站