Log in Spring

2908 단어 spring
기록 로 그 는 기업 급 응용 프로그램 이 반드시 고려 해 야 할 일이 다.몇 년 전에 한 프로젝트 의 로그 기능 이나 모듈 이 있 었 고 로그 4j 와 같은 제품 이 있 었 습 니 다.log4j 가 기록 로 그 를 극 대화 시 켰 거나 기술 함량 이 높 지 않 거나 경제적 이익 이 뚜렷 하지 않 아서 이 분야 의 가장 주요 한 실현 자가 되 었 다.그것 의 지 위 는 하나의 사실 을 형성 했다. 다른 로그 도구 가 그것 과 공존 할 때 사람들 은 스스로 그것 을 호출 하여 실제 작업 을 완성 할 것 이다.spring 을 사용 하 는 과정 에서 이 메커니즘 은 처음에 프로그래머 를 현혹 시 킬 것 이다. 적어도 나 는 이렇다.spring 홈 페이지 개편 전 jar 가방 다운 로드 를 제공 합 니 다. 지금 은 Maven 이나 gradle 을 통 해 jar 가방 을 온라인 으로 다운로드 하고 있 습 니 다.spring framework 에서 로그 도 구 는 common - logging 입 니 다.spring data jpa 에서 로그 도 구 는 slf4j 로 바 뀌 었 습 니 다. 두 개의 가방 이 필요 합 니 다. jcl - over - slf4j 와 slf4j - api.일이 끝나 지 않 았 습 니 다. 프로젝트 에 히 베 네 이 트 가 필요 하기 때 문 입 니 다.hibenate 4 부터 로그 도 구 는 jboss - logging 으로 바 뀌 었 습 니 다. i18n 을 지원 하기 위해 서 입 니 다.현재 프로젝트 프로젝트 의 lib 폴 더 에는 로그 기록 작업 을 지원 하 는 jar 패키지 가 4 개 있 습 니 다. 그럼 에 도 불구 하고 콘 솔 출력 에서 관련 정 보 를 볼 수 있 는 것 외 에 로그 도 구 를 설정 하여 로그 내용 을 파일 이나 데이터 라 이브 러 리 에 기록 하여 영구적 으로 저장 할 수 없습니다.홈 페이지 (정확성 확보) 에서 자 료 를 보면 이 도구 들 은 모두 facade 이 고 가장 Simple 또는 default 로그 기록 기능 만 제공 하 며 확장 하려 면 log 4 j 와 같은 제품 을 통합 해 야 합 니 다.common - logging 과 jboss - logging 에 대해 log4j 의 jar 가방 을 함께 놓 으 면 이 두 도 구 는 자동 으로 log4j 를 통합 할 수 있 습 니 다.slf4j 에 대해 서 는 slf4j - log4j 의 jar 가방 을 추가 해 야 합 니 다.spring 문서 에는 다음 과 같은 몇 마디 가 있 습 니 다. If we could turn back the clock and start Spring now as a new project it would use a different logging dependency. The first choice would probably be the Simple Logging Facade for Java (SLF4J),which is also used by a lot of other tools that people use with Spring inside their applications. SLF4J is a cleaner dependency and more efficienty at runtime than commons-logging because it uses compile - time bings instead of runtime discovery of the other logging frameworks it integrated. 그래, 시간 은 후퇴 할 수 없 으 니,우 리 는 slf4j 를 사용 하기 위해 서 스스로 설정 을 완성 할 수 밖 에 없다.jboss - logging 이 실현 하 는 것 도 '실행 중 발견 알고리즘' (runtime discovery algorithm) 입 니 다. 무슨 문제 가 있 습 니까?내 버 려 두 어 라!common - logging 은 jcl 표준 인터페이스의 실현 이기 때문에 jcl - over - slf4j 는 jcl 과 slf4j 사이 의 교량 으로 jcl - over - slf4j 가 있 고 spring 은 자신 이 여전히 common - logging 을 호출 하고 있 는 줄 알 았 다.이후 slf4j - api 는 slf4j - log4j 의 인 터 페 이 스 를 호출 하여 진정한 log4j 를 사용 합 니 다.log4j 를 사용 하 는 것 은 정말 간단 합 니 다. 설정 파일 을 classpath 아래 에 두 면 됩 니 다. eclipse 디 렉 터 리 구조 라면 src 폴 더 에 넣 는 것 입 니 다.프로필 의 내용 은 세 부분 으로 구성 되 어 있 습 니 다. logger, appender, layot 는 이해 하기 도 쉽 고 인터넷 자료 가 너무 많 으 면 여기 서 중복 되 지 않 습 니 다.
    마지막 으로 로그 도구 에 필요 한 jar 패 키 지 를 정리 할 수 있 습 니 다. jcl - over - slf4j - api, slf4j - log4j, log4j, jboss - logging.로그 도구 의 갈등 을 제외 하고 이러한 우수한 프레임 워 크 는 자바 바이트 코드 작업 과 동적 에이전트 에서 도 복잡 하 게 얽 혀 있다.현재 발행 판 을 보면 hibenate 는 cglib 에서 자바 ssist 로 변경 되 었 습 니 다. spring 3.2 이후 cglib + asm 을 직접 통합 하 였 습 니 다. 예전 에는 통합 되 었 던 것 같 았 는데 나중에 분리 되 었 습 니 다. (jar 가방 을 따로 추가 해 야 합 니 다) 지금 은 또 함께 있 습 니 다. 정말 고생 입 니 다!이번에 함께 있 으 면 spring 은 동적 에이전트 에 있어 위력 이 커 인터페이스 에이전트 (jdk 지원) 도 실현 할 수 있 고 클래스 에이전트 (cglib 지원) 도 실현 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기