라벨이 자바인 게시물 표시

로깅프레임워크

이미지
자바 로깅 프레임워크 (log4j, logback, slf4j) @ Log4j log4j는 로깅을 수행하는 로깅 구현체다. 1. 주요 기능 및 특징 속도에 최적화되었다. 멀티 스레드 환경에 안전하다. 계층적 로그 설정 및 처리할 수 있다. 6가지의 계층적 로그 레벨 파일, 콘솔, 원격 서버, 이메일 등 다양한 형태로 로그를 기록할 수 있다. 단, 로그에 대한 파일 입출력시 오버헤드가 발생 할 수 있다. 개발 중간에 로그 설정을 변경하면, 서버를 재시작해야한다. 2. 주요 구조 Appender : 파일, 콘솔, 원격 서버 등 로그를 기록할 위치를 지정한다. ConsoleAppender : 콘솔에 로그를 남긴다. FileAppender : 파일에 로그를 남긴다. RollingFileAppender : 로그의 크기가 일정 용량이 되면 다른 파일에 남긴다. DailyRollingFileAppender : 하루 단위로 파일에 로그를 남긴다. SMTPAppender : 이메일에 로그를 남긴다. Layout : 기록할 로그의 패턴을 지정한다. Logger : 로깅일 일어나는 부분을 그룹화하여, 필요한 그룹의 로그만 출력하도록 지정한다. 3. 로그 레벨 FATAL < ERROR < WARN < INFO < DEBURG < TRACE 순으로 6가지의 레벨이 있다. 좌측으로 갈수록 좁은 범위의 크리티컬한 로그 레벨을 의미하고, 우측으로 갈수록 넓은 범위를 로그 레벨을 의미한다. DEBURG로 설정하는 경우, FATAL / ERROR / WARN / INFO / DEBURG 레벨의 로그들을 기록한다. @Logback log4j와 마찬가지로 로깅을 수행하는 로깅 구현체다. logback은 log4j 개발자가 기존의 log4j를 대체하기 위해 개발한 로깅 프레임워크다. log4j를 토대로 만들어서 더 높은 성능과 안정성을 보장할 수 있다...

jdk 8 업그레이드시 이슈사항

jdk 버전 업그레이드시 이슈사항 정리 이슈사항 powermock > javassist jdk 8을 사용할 때, powermock 라이브러리 버전에 이슈가 있다. powermock 안에 javassist라는 라이브러리에서 문제가 있는데, 이 라이브러리는 Java Bytecode를 조작하는 라이브러리로 버전에 따라 jdk 8 클래스의 Bytecode와 호환되지 않는다. javassist-3.18.1.GA부터 호환이 되지만, jdk 8을 호환하기 위한 많은 버그들이 수정된 버전은 3.19.0.GA부터라고 한다. 참고1 / github.com/jboss-javassist 참고2 / stackoverflow spring-asm spring 3.0에서 jdk 8을 사용할 때, lambda 식을 사용하면 이슈가 발생한다. spring-asm이란 라이브러리는 위에서 말한 javassis와 같이 Java Bytecode를 조작하는 라이브러리이다. 따라서 jdk 8의 Bytecode를 조작하는데 이슈가 있는 것 같다. 원래 spring 3.x는 jdk 1.7까지를 지원하고, jdk8은 spring 4.x부터 완전히 호환이 된다고 한다. 하지만 모든 소스가 안되는 것은 아니고 lambda와 같은 jdk 8 syntax는 사용하지 않는다면 문제가 발생하지 않는다. spring 3.2.9 부터는 jdk 8 bytecode를 인식할 수 있지만, 완전히는 아니다. 완전하게 인식하는 버전은 spring 4.0-M1이다