4.0 베타에서 제공되는 Spring Boot Template 에서 log4j2 를 사용하는 방법에 대해 질문이 있습니다
- 작성자 :
- 제**담
- 작성일 :
- 2021-12-27 13:32:02
- 조회수 :
- 2,616
- 구분 :
- 개발환경 / 4.0
- 진행상태 :
- 완료
Q
안녕하세요..
실은 궁금한게 있어서 질문을 드려봅니다..
제가 전자정부 프레임워크 개발환경 4.0 베타에서 제공 되는 Simple Homepage Template 을 보던 도중에..
기존의 log가 Spring 에서 기본적으로 사용되고 있는 logback 을 사용하고 있는 것이 확인되어서
이를 log4j2로 고쳐보았습니다..
근데 이렇게 할 경우 프로젝트를 시작했을때 클래스가 정상적으로 로딩이 되지를 않더라구요..
그래서 이 부분에 대한 확인을 받고 싶어서 질문을 올리게 되었습니다..
프로젝트 생성은 File -> New -> Other 로 간뒤에
eGovFrame -> eGovFrame Boot Template Project 로 들어가서
거기서 Simple Homepage 를 선택해서 만들었습니다..
그리고 첨부된 egov.zip 파일을 보시면 파일이 3개가 있는데요..
1. log4j2 적용하지 않은 pom.xml
2. log4j2 적용한 pom.xml
3. 비정상 동작 로그.png
4. log4j2-spring.xml
이렇게 3개가 있습니다..
log4j2 적용하지 않은 pom.xml 파일은 말 그대로 log4j2 를 적용하지 않은 pom.xml 파일이며 위에서 언급했던 Simple Homepage 텝플릿이 생성한 pom.xml 과 동일한 내용입니다..
log4j2 적용한 pom.xml 은 log4j2를 적용한 pom.xml 인데 적용한 방법은 spring-boot-starter-web 에서 spring-boot-starter-logging 을 exclusion 처리를 한뒤 spring-boot-starter-log4j2를 적용했습니다.
원래 정석대로 하자면 spring-boot-starter 에서부터 exclusion 처리를 했어야 했지만 이 템플릿에서 적용된 starter 가 spring-boot-starter-web 만 있어서 여기다가만 진행했습니다..
요즘 log4j 취약점이 있는것은 알고 있습니다만 이거는 그냥 공부용으로 만든거라 따로 취약점 관련 대응을 하지는 않았습니다..
비정상 동작 로그.png 이 파일은 2번의 pom.xml을 적용시킨뒤 프로젝트를 시작시켰을때 나오는 log 입니다..log4j2 를 적용하지 않은 pom.xml 에서는 많은 양의 로그가 출력되는 것을 확인할 수 있었지만
이 그림을 보시면 적은 양만 나오고 있으며 동작의 흐름도 좀 이상하다는 느낌이 들었습니다..
마지막으로 log4j2-spring.xml 은 테스트에 사용된 /src/main/resources 디렉토리에 넣은 log4j 설정 파일입니다..
템플릿에서 제공하는 logback.xml 에 맞춰서 logger 를 설정했습니다.
pom.xml 을 제외하고는 Template 에서 제공된 소스 그 어떠한 것도 건드리지 않았습니다..
확인 부탁드리겠습니다..
실은 궁금한게 있어서 질문을 드려봅니다..
제가 전자정부 프레임워크 개발환경 4.0 베타에서 제공 되는 Simple Homepage Template 을 보던 도중에..
기존의 log가 Spring 에서 기본적으로 사용되고 있는 logback 을 사용하고 있는 것이 확인되어서
이를 log4j2로 고쳐보았습니다..
근데 이렇게 할 경우 프로젝트를 시작했을때 클래스가 정상적으로 로딩이 되지를 않더라구요..
그래서 이 부분에 대한 확인을 받고 싶어서 질문을 올리게 되었습니다..
프로젝트 생성은 File -> New -> Other 로 간뒤에
eGovFrame -> eGovFrame Boot Template Project 로 들어가서
거기서 Simple Homepage 를 선택해서 만들었습니다..
그리고 첨부된 egov.zip 파일을 보시면 파일이 3개가 있는데요..
1. log4j2 적용하지 않은 pom.xml
2. log4j2 적용한 pom.xml
3. 비정상 동작 로그.png
4. log4j2-spring.xml
이렇게 3개가 있습니다..
log4j2 적용하지 않은 pom.xml 파일은 말 그대로 log4j2 를 적용하지 않은 pom.xml 파일이며 위에서 언급했던 Simple Homepage 텝플릿이 생성한 pom.xml 과 동일한 내용입니다..
log4j2 적용한 pom.xml 은 log4j2를 적용한 pom.xml 인데 적용한 방법은 spring-boot-starter-web 에서 spring-boot-starter-logging 을 exclusion 처리를 한뒤 spring-boot-starter-log4j2를 적용했습니다.
원래 정석대로 하자면 spring-boot-starter 에서부터 exclusion 처리를 했어야 했지만 이 템플릿에서 적용된 starter 가 spring-boot-starter-web 만 있어서 여기다가만 진행했습니다..
요즘 log4j 취약점이 있는것은 알고 있습니다만 이거는 그냥 공부용으로 만든거라 따로 취약점 관련 대응을 하지는 않았습니다..
비정상 동작 로그.png 이 파일은 2번의 pom.xml을 적용시킨뒤 프로젝트를 시작시켰을때 나오는 log 입니다..log4j2 를 적용하지 않은 pom.xml 에서는 많은 양의 로그가 출력되는 것을 확인할 수 있었지만
이 그림을 보시면 적은 양만 나오고 있으며 동작의 흐름도 좀 이상하다는 느낌이 들었습니다..
마지막으로 log4j2-spring.xml 은 테스트에 사용된 /src/main/resources 디렉토리에 넣은 log4j 설정 파일입니다..
템플릿에서 제공하는 logback.xml 에 맞춰서 logger 를 설정했습니다.
pom.xml 을 제외하고는 Template 에서 제공된 소스 그 어떠한 것도 건드리지 않았습니다..
확인 부탁드리겠습니다..
환경정보
-
- OS 정보 : Windows 10
- 표준프레임워크 버전 : 4.0 베타
- JDK(JRE) 정보 : JDK 11
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
simple boot template 의 logback.xml 파일의
Root 로그 레벨은 'debug' 로 되어 있으므로
log4j2.xml 파일의 Root 로그 레벨도 'debug' 로 맞춰주시고
log 설정도 기존 logback.xml 에 포함된
설정들을 포함해 보시기 바랍니다.
log4j2 설정에 대해서는 기존 표준프레임워크 템플릿을 참고하시거나
위키가이드를 참고하시기 바랍니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:logging:log4j_2
감사합니다.
표준프레임워크센터입니다.
simple boot template 의 logback.xml 파일의
Root 로그 레벨은 'debug' 로 되어 있으므로
log4j2.xml 파일의 Root 로그 레벨도 'debug' 로 맞춰주시고
log 설정도 기존 logback.xml 에 포함된
설정들을 포함해 보시기 바랍니다.
log4j2 설정에 대해서는 기존 표준프레임워크 템플릿을 참고하시거나
위키가이드를 참고하시기 바랍니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:logging:log4j_2
감사합니다.