package roomescape.common.util import org.slf4j.MDC import java.util.* private const val MDC_PRINCIPAL_ID_KEY = "principal_id" object MdcPrincipalId { fun extractAsLongOrNull(): Long? { return MDC.get(MDC_PRINCIPAL_ID_KEY)?.toLong() } fun extractAsOptionalLongOrEmpty(): Optional { return MDC.get(MDC_PRINCIPAL_ID_KEY)?.let { Optional.of(it.toLong()) } ?: Optional.empty() } fun set(id: String) { MDC.put(MDC_PRINCIPAL_ID_KEY, id) } fun clear() { MDC.remove(MDC_PRINCIPAL_ID_KEY) } }