Skip to content

praisebak/TimeLog

Repository files navigation

개요

김영환님의 스프링부트 강의중 로깅부분을 가져와 모듈화하였습니다. 다음과 같은 로깅을 하는 모듈입니다. java 8버전 이상 지원 image

사용방법

위 소스 코드를 빌드(./gradlew build)하여 ./build/libs 내에 생성된 jar 파일을 사용하면 됩니다.

public class TimeLogApplication {
    public static void main(String[] args) {
        TraceLocalLogTrace traceLocalLogTrace = new TraceLocalLogTrace();
        TraceStatus startTraceStatus = traceLocalLogTrace.begin("asdf");
        traceLocalLogTrace.end(startTraceStatus);
    }
}

스프링부트 내 사용

appconfig 등에서 다음과 같이 Bean을 등록해줍니다

@Configuration
public class AppConfig {

    @Bean
    public LogTrace logTrace() {
        return new TraceLocalLogTrace();
    }
}

AOP 등에서 사용

@Aspect
@Component
@RequiredArgsConstructor
@Log
public class TimeLogAOP {

    private final LogTrace logTrace;

    @Pointcut("execution(* com.aiddoru.dev.Service..*(..))")
    public void allService() {}

    @Pointcut("execution(* com.aiddoru.dev.Controller..*(..))")
    public void allController() {}

    @Around("allController() || allService()")
    public Object doLog(ProceedingJoinPoint joinPoint) throws Throwable {
        TraceStatus traceStatus = logTrace.begin(joinPoint.getSignature().toShortString());
        try {
            Object result = joinPoint.proceed();
            logTrace.end(traceStatus);
            return result;
        } catch (Exception e) {
            e.printStackTrace();
            logTrace.exception(traceStatus, e);
            throw e;
        }
    }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages