나는 우리가
log.debug { "some $thing is $that" }
같은 것들을 쓸 수 있도록 ... 사용이 많은 재미를 만드는 클래스를 작성했습니다 당신은 심지어 해달라고
log.debug("some {} is {}",()->thing,()->that)
같은 게으른 람다 기록의 상당 이러한 {}
paramet에 대한 필요 ... 여기
이 그것을 사용하고자하는 사람을위한 클래스입니다 ...
import org.apache.logging.log4j.util.Supplier
class Logger(private val logger: org.apache.logging.log4j.Logger) : org.apache.logging.log4j.Logger by logger {
fun info(supplier:() -> String) {
logger.info(Supplier { supplier.invoke() })
}
fun debug(supplier:() -> String) {
logger.debug(Supplier { supplier.invoke() })
}
fun warn(supplier:() -> String) {
logger.warn(Supplier { supplier.invoke() })
}
fun error(supplier:() -> String) {
logger.error(Supplier { supplier.invoke() })
}
fun trace(supplier:() -> String) {
logger.trace(Supplier { supplier.invoke() })
}
}
또는 당신이 원하는 경우를 문자열을 erising, 그것은 대리자이기 때문에 당신은 모든 원본 로거 방법을 수행 할 수있는 로그에서 소스에 대한 멋진 참고 자료를 활용하십시오.
import org.apache.logging.log4j.util.Supplier
class Logger(val logger: org.apache.logging.log4j.Logger) : org.apache.logging.log4j.Logger by logger {
inline fun info(crossinline supplier:() -> String) {
logger.info(Supplier { supplier.invoke() })
}
inline fun debug(crossinline supplier:() -> String) {
logger.debug(Supplier { supplier.invoke() })
}
inline fun warn(crossinline supplier:() -> String) {
logger.warn(Supplier { supplier.invoke() })
}
inline fun error(crossinline supplier:() -> String) {
logger.error(Supplier { supplier.invoke() })
}
inline fun trace(crossinline supplier:() -> String) {
logger.trace(Supplier { supplier.invoke() })
}
}