작성
·
322
·
수정됨
1
https://www.inflearn.com/community/questions/902500/%EB%A1%9C%EA%B7%B8%EA%B0%80-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%95%88%EB%82%98%EC%98%B5%EB%8B%88%EB%8B%A4-%E3%85%A0%E3%85%A0%E3%85%A0%E3%85%A0?srsltid=AfmBOook52IISu7bmU4fnBg_VQjvllLx-upX39l0oGCQGBiI0os3q-Vb
위 링크와 동일한 방식을 시도하다 궁금증이 생겨 질문드립니다.
[문제상황]
스프링 핵심 원리 - 기본편의 스프링으로 전환하기 강의 5분 35초의 로그가 출력이 안되어 인터넷 검색을 하다 위 링크를 발견했습니다. (강의 자료에 추가해주신 내용도 확인했구요.)
logback.xml을 추가해서 문제를 해결했으나 처음에 문제 원인을 기본 로깅 레벨이 INFO로 설정되어있다고 판단해 application.properties에 아래와 같이 설정했습니다.
logging.level.root=DEBUG
logging.level.org.springframework=DEBUG
위와 같이 설정했음에도 DEBUG 로그가 정상적으로 출력되지 않았습니다.
[질문]
application.properties에 위와 같이 설정했음에도 DEBUG 로그가 출력되지 않은 이유가 궁금합니다. (Logback.xml 적용하기 전에 설정했습니다.)
logback.xml이 적용되는 원리와 application.properties의 설정이 적용되는 원리가 다른가요? 두 방법의 차이가 궁금합니다.
==========
AI 답변보고 추가로 남겨둡니다.
제 질문의 의도는 '왜 application.properties'를 설정했을때 debug로그가 출력되지 않았느냐 입니다.!
1. application.properties 설정을 적용할 때 logback.xml은 작성되지 않았습니다. 즉 logback.xml이 우선 적용되는 되는 것은 원인이 아닙니다.
2. logback.xml의 역할은 이미 인터넷을 통해 학습해 알고 있습니다. (세부 설정이 가능하다는 등)
3. logback.xml로 설정하는 것과 application.properties로 설정하는것이 세부 설정이 가능한 것 외에는 차이가 없다면 차이점에 대해서는 설명해주시지 않으셔도 됩니다. 다만 요지는 application.properties만 설정했을때 왜 debug로그가 출력되지 않았는지 궁금합니다. 제가 설정을 잘못한거였는지, 오타가 있었는지 등등 application.properties에서 logging.level=DEBUG 설정했을때는 왜 선생님 코드와 동일하게 DEBUG 로그가 출력되지 않았는지 궁금합니다.
답변 2
2
안녕하세요. 정다은님
application.properties에 있는 정보를 활용하려면 스프링 코어뿐만 아니라 스프링 부트를 함께 실행해야 합니다.
그런데 MemberApp과 OrderApp처럼 ApplicationContext를 직접 생성해서 사용할 때는 스프링 부트를 함께 실행하는 것이 아니라, 스프링 코어만 실행하게 됩니다.
쉽게 이야기해서 스프링 부트가 applicaton.properties의 정보를 활용해서 logback의 정보를 조절합니다. 그렇지 않은 경우 logback에서 제공하는 logback.xml을 그대로 사용하게 됩니다.
따라서 이 경우에는 application.properties의 정보를 사용할 수 없습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 정다은님.
스프링에서 로그 설정과 관련하여 궁금한 점을 가지고 계신 것 같습니다. 로그 레벨 설정과 관련하여 application.properties와 logback.xml 파일의 역할을 비교하고, 그 차이를 설명드리겠습니다.
application.properties 설정:
application.properties
파일은 스프링 부트에서 기본적으로 제공하는 설정 파일로, 애플리케이션의 모든 속성을 관리할 수 있습니다. 여기서 logging.level.root=DEBUG
와 logging.level.org.springframework=DEBUG
와 같은 설정은 스프링 내부에서 직접 제공하는 로깅 설정입니다. 기본적으로 이 설정이 작동하지 않는 경우는 환경 설정 문제나 오타가 있을 수 있는데, 이 문제는 logback.xml
파일로 해결된 것으로 보아 다른 설정 파일이 우선 적용되었을 가능성도 있습니다.logback.xml의 역할:
logback.xml
은 Logback 라이브러리를 통해 보다 세부적인 로그 설정을 관리할 수 있는 파일입니다. Logback은 강력한 로깅 프레임워크로, XML을 통해 다양한 설정을 직관적으로 할 수 있는 장점이 있습니다. 이 파일을 사용하면 콘솔이나 파일에 대한 다양한 로깅 방법을 정의하고, 특정 레벨 이상의 로그만 출력하는 등의 세부 설정이 가능합니다.logback.xml
은 Logback의 구체적인 설정 파일로, application.properties
보다 우선순위가 높은 경우가 많습니다. 즉, 둘 다 설정되어 있는 경우, logback.xml의 설정이 우선하여 적용될 수 있습니다.application.properties
는 스프링에서 기본적으로 사용할 수 있는 설정이지만, 세부적이고 복잡한 로깅 설정은 logback.xml을 통해 가능하다는 차이가 있습니다.문제가 해결된 후에도 궁금증이 남아 계셨던 것 같아 이에 대해 설명드렸습니다. 관련하여 더 많은 지식이 필요하시다면, 기존 질문 게시판에 있는 다음 글들을 참고해 보시길 권장드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.