FrontendLogController.java
- package no.nav.data.common.web;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.responses.ApiResponse;
- import io.swagger.v3.oas.annotations.responses.ApiResponses;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import lombok.AllArgsConstructor;
- import lombok.Builder;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import no.nav.data.common.utils.JsonUtils;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- @Slf4j
- @RestController
- @Tag(description = "Polly frontend logging", name = "Logging")
- @RequestMapping("/frontendlog")
- public class FrontendLogController {
- @Operation(summary = "Write log")
- @ApiResponses(value = {@ApiResponse(description = "Log written")})
- @PostMapping
- public void write(@RequestBody LogRequest request) {
- var string = JsonUtils.toJson(request);
- switch (request.level) {
- case info -> log.info(string);
- case warn -> log.warn(string);
- case error -> log.error(string);
- }
- }
- @Data
- @Builder
- @NoArgsConstructor
- @AllArgsConstructor
- public static class LogRequest {
- public enum Level {info, warn, error}
- private Level level;
- private String context;
- private String content;
- }
- }