중요한 일은 아니지만 개발환경을 만드는 입장에서 어떻게 하면 조금 더 로그를 가독성이 좋게 보여줄 수 있을까 고민을 했고 출력 로그의 색상을 바꿔보기로 하였다. 바쁜 사람을 위해 결론부터 말하면 색상을 변경하기 위해서는 다음과 같이 하면 된다. logback-spring.xml ... 생략 ... 로그 패턴 정의 중 출력할내용을 %clr(출력할내용){red} 로 감싸준다. red 말고 다른 색상으로 대체 가능 다음은 출력로그의 색상을 변경하는 원리와 상세 적용 방안이다. 위의 AProject는 가장 기본적인 Springboot project의 모습이다. logback-spring.xml 파일은 물론이고 application.properties에도 로그에 대한 설정은 없다. 이 프로젝트를 실행시키면 다음과..
필자는 일단 이 글을 쓰면서도 이 include를 사용하여 가독성을 높이는게 더 나은 방법일까? 라는 의문을 계속 가지고 있다. 답은 어느정도 정해져있다. 내가 관리를 할때 파일을 여러개로 쪼개서 가독성을 높이는것이 좋으면 쪼개는거고 아니면 하나의 파일에 다 때려박아도 무관하다. spring의 application-context를 관리하는것과 비슷한 맥락이라고 보면 된다. 하나의 파일에 다 넣을수도 있지만 종류별로 분리함으로써 더 높은 효과가 예상된다면 그리 하면 된다. 어떻게 하는지 알아보자. logback-console-appender.xml [%d{HH:mm:ss.SSS}][%-5level][%logger.%method:line%line] - %msg%n utf8 logback-file-append..
log4j는 한때 위용을 떨쳤던 강력한 logging framework였다. 하지만 세월이 흐르고 기술은 발전하여 더 나은 logging framework들이 등장했다. 성능적인 측면이나 기능적인 측면에 더욱 발전하여 전환은 선택이 아닌 필수가 되었다. 그중 springboot 공식 logging framework로 사용될만큼 인정을 받은 logback으로 전환을 하는 방법에 대해 알아보자. 더불어 다음부터는 쉽게 logging framework 전환을 쉽게 하기 위해 slf4j 를 사용하도록 하자. pom.xml library 변경 log4j log4j log4j 1.2.17 slf4j + logback org.slf4j slf4j-api 1.7.25 ch.qos.logback logback-class..
기존 log를 관리하기 위한 구현체로써 log4j가 사용되었다. 그러나 보다 안정성이 높고 편리하게 log를 관리하기 위해 Logging framework인 Slf4j(Simple Logging Façade for Java)와 그 구현체로써 Logback이 고안되었다. Slf4j는 일명 Façade 패턴으로, 이를 사용하면 구현체의 종류와 상관없이 일관된 로깅 코드를 작성할 수 있으며 구현체를 변경할 경우에도 최소한의 수정으로 교체가 가능하다. 이에 맞춘 Logback은 log4j의 후속 버전으로 만든 Logging 라이브러리이다. Logback은 springboot의 기본 Logging framework로 사용될만큼 범용적이고 다양한 기능을 가지고 있다. log 관리 및 처리 구조는 다음과 같다. Lo..
springboot 1.4.2 를 사용하다가 2.x 로 versionup을 하였다. 오 생각보다 별 이슈 없이 잘 되네? 하며 종속성 에러를 다 잡고 서버를 기동하는 순간 다음과 같은 오류가 떨어졌다. 이 익숙한듯 익숙하지않은 익숙한거같은 오류... 분명 위에서 지적하는 logback 관련 라이브러리는 물론 잘 올라와있다. 찾아보니 역시 springboot migration 이슈였다. 이건 springboot 1.5.x 를 사용할때도 나타나는 현상이라고 하는데 springboot 1.5.x 이상에서 logback 1.0.x version을 사용하면 이런 문제가 발생한다고 한다. 해결방법은 logback을 최소 1.1.3 version 이상을 사용하면 된다. 1.2.3 이렇게 바꾸고 다시 기동시켜보면 잘 ..
2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml 2020/05/14 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (3) - 파일 추가 및 변경 중요한 전환은 이제 다 마쳤고 이제 springboot에서 logback을 사용하는 방법에 대해 알아보자. AS-IS framework에서도 logging framework는 logback을 ..
logback에 spring profile을 왜 적용하는가? 이유는 간단하다. 하나의 파일만 만들기 위해서다. spring profile을 적용하지 않는다면 logback.xml 하나만 있어도 될걸 logback-dev.xml, logback-prd.xml 등등 각 PHASE에 맞는 파일들을 생성한 뒤 배포를 하고 파일을 덮어 씌우는 형식으로 하거나, 아니면 직접 서버에 들어가서 경로를 수정하거나 하는 번거로움이 있다. 비단 logback 뿐만 아니라 spring profile은 여러모로 배포하는 입장에서는 무척 유용하다. springboot 를 사용한다면 이와 결합하여 간단하게 spring profile을 적용할 수 있겠지만 springboot를 사용하지 않는 프로젝트라면 logback에 spring ..
logback이라던지 log4j2 등 비교적 최근에 나온 logging framework을 사용하면 appender를 이용해 시간이 오래 된 로그를 삭제할 수 있지만 그 전에 나온 log4j 등의 logging framework은 이런 기능이 없다. 따라서 서버에서 오래된 로그를 주기적으로 직접 지워줘야 하는데 이때 사용할수 있는 방법이다. 일단 적당한 위치에 다음과 같은 Shell Script를 작성한다. #!/bin/sh echo "#################### `date` delete log list ###########################" >> /logs/old/deleteOldLog.log find /logs -mtime +30 -type f -ls >> /logs/old/de..