From 3918285d3876faf6f1eb21ef7ddaa371d45eee70 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Tue, 25 Jun 2019 16:52:51 +0800 Subject: [PATCH] Support get spring.log api. --- .../controller/admin/api/AdminController.java | 8 ++++++++ .../java/run/halo/app/service/AdminService.java | 8 ++++++++ .../halo/app/service/impl/AdminServiceImpl.java | 17 +++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/src/main/java/run/halo/app/controller/admin/api/AdminController.java b/src/main/java/run/halo/app/controller/admin/api/AdminController.java index b742f82c3..0586dcfc9 100644 --- a/src/main/java/run/halo/app/controller/admin/api/AdminController.java +++ b/src/main/java/run/halo/app/controller/admin/api/AdminController.java @@ -2,11 +2,13 @@ package run.halo.app.controller.admin.api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import run.halo.app.cache.lock.CacheLock; import run.halo.app.model.dto.EnvironmentDTO; import run.halo.app.model.dto.StatisticDTO; import run.halo.app.model.params.LoginParam; +import run.halo.app.model.support.BaseResponse; import run.halo.app.security.token.AuthToken; import run.halo.app.service.AdminService; @@ -16,6 +18,7 @@ import javax.validation.Valid; * Admin controller. * * @author johnniang + * @author ryanwang * @date 3/19/19 */ @Slf4j @@ -73,4 +76,9 @@ public class AdminController { adminService.updateAdminAssets(); } + @GetMapping("spring/logs") + @ApiOperation("Get application logs") + public BaseResponse getSpringLogs() { + return BaseResponse.ok(HttpStatus.OK.getReasonPhrase(),adminService.getSpringLogs()); + } } diff --git a/src/main/java/run/halo/app/service/AdminService.java b/src/main/java/run/halo/app/service/AdminService.java index 6b60a9092..5a489c291 100644 --- a/src/main/java/run/halo/app/service/AdminService.java +++ b/src/main/java/run/halo/app/service/AdminService.java @@ -26,6 +26,8 @@ public interface AdminService { String REFRESH_TOKEN_CACHE_PREFIX = "halo.admin.refresh_token."; + String LOGS_PATH = "logs/spring.log"; + /** * Authenticates. * @@ -69,4 +71,10 @@ public interface AdminService { * Updates halo admin assets. */ void updateAdminAssets(); + + /** + * Get spring logs. + * @return recently logs. + */ + String getSpringLogs(); } diff --git a/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java b/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java index ad4610296..79414484a 100644 --- a/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java @@ -1,5 +1,6 @@ package run.halo.app.service.impl; +import cn.hutool.core.io.file.FileReader; import cn.hutool.core.lang.Validator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -32,6 +33,7 @@ import run.halo.app.service.*; import run.halo.app.utils.FileUtils; import run.halo.app.utils.HaloUtils; +import java.io.File; import java.io.IOException; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; @@ -373,4 +375,19 @@ public class AdminServiceImpl implements AdminService { return token; } + + /** + * Get spring logs. + * + * @return recently logs. + */ + @Override + public String getSpringLogs() { + File file = new File(haloProperties.getWorkDir(), LOGS_PATH); + if (!file.exists()) { + return "暂无日志"; + } + FileReader reader = new FileReader(file); + return reader.readString(); + } }