diff --git a/src/main/java/devkor/com/teamcback/domain/routes/service/RouteService.java b/src/main/java/devkor/com/teamcback/domain/routes/service/RouteService.java index 73067878..6f41a41c 100644 --- a/src/main/java/devkor/com/teamcback/domain/routes/service/RouteService.java +++ b/src/main/java/devkor/com/teamcback/domain/routes/service/RouteService.java @@ -14,7 +14,7 @@ import devkor.com.teamcback.domain.routes.repository.NodeRepository; import devkor.com.teamcback.global.exception.exception.AdminException; import devkor.com.teamcback.global.exception.exception.GlobalException; -import devkor.com.teamcback.global.logging.service.LogUtil; +import devkor.com.teamcback.global.logging.LogUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/src/main/java/devkor/com/teamcback/domain/search/service/SearchService.java b/src/main/java/devkor/com/teamcback/domain/search/service/SearchService.java index 68745e8c..c59c1034 100644 --- a/src/main/java/devkor/com/teamcback/domain/search/service/SearchService.java +++ b/src/main/java/devkor/com/teamcback/domain/search/service/SearchService.java @@ -23,7 +23,7 @@ import devkor.com.teamcback.domain.user.entity.User; import devkor.com.teamcback.domain.user.repository.UserRepository; import devkor.com.teamcback.global.exception.exception.GlobalException; -import devkor.com.teamcback.global.logging.service.LogUtil; +import devkor.com.teamcback.global.logging.LogUtil; import devkor.com.teamcback.global.response.CursorPageRes; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/devkor/com/teamcback/global/logging/LogUtil.java b/src/main/java/devkor/com/teamcback/global/logging/LogUtil.java new file mode 100644 index 00000000..b67ac742 --- /dev/null +++ b/src/main/java/devkor/com/teamcback/global/logging/LogUtil.java @@ -0,0 +1,38 @@ +package devkor.com.teamcback.global.logging; + +import devkor.com.teamcback.domain.building.entity.Building; +import devkor.com.teamcback.domain.place.entity.Place; +import devkor.com.teamcback.domain.routes.entity.Conditions; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +import static net.logstash.logback.argument.StructuredArguments.kv; + +@Slf4j +@Component +public class LogUtil { + public void logClick(String buildingName, String placeName, Double floor, String categoryName) { + log.info("click_event", + kv("buildingName", buildingName), + kv("placeName", placeName), + kv("floor", floor), + kv("categoryName", categoryName) + ); + } + + public void logSearch(String keyword) { + log.info("search_event", kv("keyword", keyword)); + } + + public void logRoute(Building startBuilding, Place startPlace, Building endBuilding, Place endPlace, List conditions) { + log.info("route_event", + kv("startBuildingName", (startBuilding != null) ? startBuilding.getName() : startPlace.getBuilding().getName()), + kv("endBuildingName", (endBuilding != null) ? endBuilding.getName() : endPlace.getBuilding().getName()), + kv("startPlaceName", (startPlace != null) ? startPlace.getName() : null), + kv("endPlaceName", (endPlace != null) ? endPlace.getName() : null), + kv("conditions", (conditions != null) ? conditions.stream().map(Enum::name).toList() : null) + ); + } +} diff --git a/src/main/java/devkor/com/teamcback/global/logging/service/LogUtil.java b/src/main/java/devkor/com/teamcback/global/logging/service/LogUtil.java deleted file mode 100644 index defd6922..00000000 --- a/src/main/java/devkor/com/teamcback/global/logging/service/LogUtil.java +++ /dev/null @@ -1,59 +0,0 @@ -package devkor.com.teamcback.global.logging.service; - -import com.fasterxml.jackson.databind.ObjectMapper; -import devkor.com.teamcback.domain.building.entity.Building; -import devkor.com.teamcback.domain.place.entity.Place; -import devkor.com.teamcback.domain.routes.entity.Conditions; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Component -public class LogUtil { - - private static final Logger routeLog = LoggerFactory.getLogger("ROUTE_LOG"); - private static final Logger searchLog = LoggerFactory.getLogger("SEARCH_LOG"); - private static final Logger clickLog = LoggerFactory.getLogger("CLICK_LOG"); - - private final ObjectMapper objectMapper = new ObjectMapper(); - - public void logClick(String buildingName, String placeName, Double floor, String categoryName) { - Map logMap = new HashMap<>(); - if(buildingName != null) logMap.put("buildingName", buildingName); - if(placeName != null) logMap.put("placeName", placeName); - if(floor != null) logMap.put("floor", floor); - if(categoryName != null) logMap.put("categoryName", categoryName); - - try { - clickLog.info(objectMapper.writeValueAsString(logMap)); - } catch (Exception ignored) { } - } - - public void logSearch(String keyword) { - Map logMap = new HashMap<>(); - logMap.put("keyword", keyword); - - try { - searchLog.info(objectMapper.writeValueAsString(logMap)); - } catch (Exception ignored) { } - } - - public void logRoute(Building startBuilding, Place startPlace, Building endBuilding, Place endPlace, List conditions) { - Map logMap = new HashMap<>(); - - logMap.put("startBuildingName", (startBuilding != null) ? startBuilding.getName() : startPlace.getBuilding().getName()); - logMap.put("endBuildingName", (endBuilding != null) ? endBuilding.getName() : endPlace.getBuilding().getName()); - - if (startPlace != null) logMap.put("startPlaceName", startPlace.getName()); - if (endPlace != null) logMap.put("endPlaceName", endPlace.getName()); - if (conditions != null) logMap.put("conditions", conditions.stream().map(Enum::name).toList()); - - try { - routeLog.info(objectMapper.writeValueAsString(logMap)); - } catch (Exception ignored) { } - } -} diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index d8d38e0c..80cb41cc 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -25,19 +25,12 @@ - - - { - "level": "%level", - "traceId": "%X{traceId}", - "endpoint": "%X{endpoint}", - "status": "%X{status}", - "latencyMs": "%X{latencyMs}", - "message": "%msg", - "userId": "%X{userId}" - } - - + + + + + + @@ -46,4 +39,4 @@ - \ No newline at end of file +