如何使用Spring执行器在浏览器屏幕中显示日志文件的内容?

2uluyalo  于 2023-03-08  发布在  Spring
关注(0)|答案(3)|浏览(182)

我尝试在浏览器屏幕中显示日志文件的内容,这样当应用程序在外部服务器上运行时,我就不需要每次都登录到服务器来获取日志。我尝试使用Sping Boot Actuator来实现这一点。我已经在属性文件中配置了日志文件路径和日志信息级别,日志正在写入该文件。但如何流文件的内容在浏览器窗口.下面是我的属性文件内容

management.security.enabled=false
  endpoints.env.enabled=false
  endpoints.configprops.enabled=false
  endpoints.autoconfig.enabled=false
  endpoints.beans.enabled=false
  endpoints.dump.enabled=true
  endpoints.heapdump.enabled=true
  logging.level.root=info
  logging.file=target/app.log

提前感谢你的帮助!!!!

20jt8wwn

20jt8wwn1#

您可以使用Sping Boot 管理:https://github.com/codecentric/spring-boot-admin
日志如下所示:

您可以使用https://start.spring.io/将管理客户端和服务器包含在您的项目中。http://codecentric.github.io/spring-boot-admin/current/#getting-started

prdp8dxp

prdp8dxp2#

默认情况下,启用以下Sping Boot Actuator端点(JMX/WEB):
https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-endpoints-exposing-endpoints
要启用特定端点,请在Sping Boot application.properties文件中写入以下内容:

management.endpoints.web.exposure.include = info, health, logfile

或禁用写入:

management.endpoints.web.exposure.exclude = env,beans
1sbrub3j

1sbrub3j3#

浏览器中的日志:

在浏览器中从Sping Boot 应用程序公开日志的一种方法是使用内置的Actuator端点。
Actuator是一个提供生产就绪功能的工具,可帮助您监视和管理Sping Boot 应用程序。它包括各种端点,其中一个用于查看应用程序日志。
要启用Actuator端点,需要将spring-boot-starter-actuator依赖项添加到项目的pom.xml文件中:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

一旦添加了依赖项,就可以访问位于http://localhost:8080/actuator/logfile的日志端点。
要在浏览器中公开日志,您可以创建一个自定义端点,用于读取日志文件并返回其内容。

@RestController
public class LogController {

    @GetMapping("/logs")
    public ResponseEntity<String> getLogs() throws IOException {
        Path logFile = Paths.get(System.getProperty("logging.file.name"));
        String logs = new String(Files.readAllBytes(logFile));
        return ResponseEntity.ok(logs);
    }
}

通过向application.propertiesapplication.yml文件添加以下内容,确保应用程序配置为将日志写入文件:

logging.file.name=mylog.log
logging.level.root=INFO

此代码在http://localhost:8080/logs处创建一个新端点,该端点将日志文件的内容作为字符串返回。
请注意,此方法可能不适用于生产环境,因为它会暴露潜在的敏感信息。建议使用适当的安全措施限制对日志端点的访问。

相关问题