
001package org.hl7.fhir.r5.context; 002 003import lombok.RequiredArgsConstructor; 004import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage; 005import org.slf4j.Logger; 006import org.slf4j.Marker; 007import org.slf4j.MarkerFactory; 008import org.slf4j.event.Level; 009 010import java.util.HashMap; 011import java.util.Map; 012 013@RequiredArgsConstructor 014@MarkedToMoveToAdjunctPackage 015public class Slf4JLoggingService implements ILoggingService { 016 017 private final Logger logger; 018 019 static final Map<LogCategory, Marker> markers = new HashMap<>(); 020 021 private static Marker getMarker(LogCategory category) { 022 return markers.computeIfAbsent(category, c -> { 023 String markerName = c.name().toLowerCase(); 024 return MarkerFactory.getMarker(markerName); 025 }); 026 } 027 028 @Override 029 public void logMessage(String message) { 030 logger.info(message); 031 } 032 033 @Override 034 public void logDebugMessage(LogCategory category, String message) { 035 logger.makeLoggingEventBuilder(Level.DEBUG) 036 .addMarker(getMarker(category)) 037 .setMessage(message) 038 .log(); 039 } 040 041}