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;
}
}