Quarkus 로그 설정 및 패턴 등록 방법 2단계
Quarkus는 현대적인 클라우드 네이티브 애플리케이션 개발을 위한 프레임워크로서, 효율적인 로깅 시스템을 제공합니다. 이 포스트에서는 Quarkus 로그 설정 방법과 로그 패턴을 등록하는 방법에 대해 살펴보겠습니다.
목차
Quarkus 로그 설정과 함께 개발환경 세팅 방법은 아래 클릭!
Quarkus와 이클립스를 이용한 개발환경 세팅 5단계 가이드
1. Quarkus 로그 설정 방법
Quarkus는 기본적으로 application.properties
파일을 통해 설정을 관리합니다. 로그 관련 설정을 추가하려면 이 파일을 사용하면 됩니다.
기본 로그 레벨 설정:
quarkus.log.level=INFO
특정 카테고리에 대한 로그 레벨 설정:
quarkus.log.category."com.example".level=DEBUG
위의 설정은 com.example
패키지의 로그 레벨을 DEBUG
로 설정합니다.
아래 예시
03:53:28,718 INFO [org.hib.Version] HHH000412: Hibernate ORM core version 5.4.29.Final 03:53:28,724 INFO [org.hib.ann.com.Version] HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 03:53:28,743 INFO [org.hib.dia.Dialect] HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect 03:53:39,000 INFO [org.jbo.threads] JBoss Threads version 3.2.0.Final
2. 로그 패턴 등록 방법
로그 메시지의 출력 형식을 사용자 정의하려면 로그 패턴을 설정할 수 있습니다. 패턴을 정의해야 가독성 상승 합니다.
기본 로그 패턴 설정:
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} [%15.15t] %-5p [%-30.30c{1.}] (%-4L) : %s%e%n
적용 후 예시
__ ____ __ _____ ___ __ ____ ______ --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ --\___\_\____/_/ |_/_/|_/_/|_|\____/___/ 2021-06-09 11:26:10,257 [Quarkus Main Th] WARN [i.q.config ] (48 ) : Unrecognized configuration key "quarkus.native.build-image" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo 2021-06-09 11:26:10,668 [Quarkus Main Th] WARN [i.q.config ] (48 ) : Unrecognized configuration key "quarkus.native.build-image" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo 2021-06-09 11:26:10,695 [Quarkus Main Th] INFO [i.a.pool ] (66 ) : Datasource '<default>': Initial size smaller than min. Connections will be created when necessary
위의 패턴은 다음과 같은 의미를 가집니다.
%d{HH:mm:ss}
: 시간 포맷%-5p
: 로그 레벨[%c{2.}]
: 로거 카테고리 이름(%t)
: 스레드 이름%s%e%n
: 메시지 및 예외 트레이스
참고자료
출처 : 공식 홈페이지
Symbol | Summary | Description |
---|---|---|
%% | % | Renders a simple % character. |
%c | Category | Renders the category name. |
%C | Source class | Renders the source class name.[3] |
%d{xxx} | Date | Renders a date with the given date format string, which uses the syntax defined by java.text.SimpleDateFormat . |
%e | Exception | Renders the thrown exception, if any. |
%F | Source file | Renders the source file name.[3] |
%h | Host name | Renders the system simple host name. |
%H | Qualified host name | Renders the system’s fully qualified host name, which may be the same as the simple host name, depending on OS configuration. |
%i | Process ID | Render the current process PID. |
%l | Source location | Renders the source location information, which includes source file name, line number, class name, and method name.[3] |
%L | Source line | Renders the source line number.[3] |
%m | Full Message | Renders the log message plus exception (if any). |
%M | Source method | Renders the source method name.[3] |
%n | Newline | Renders the platform-specific line separator string. |
%N | Process name | Render the name of the current process. |
%p | Level | Render the log level of the message. |
%r | Relative time | Render the time in milliseconds since the start of the application log. |
%s | Simple message | Renders just the log message, with no exception trace. |
%t | Thread name | Render the thread name. |
%t{id} | Thread ID | Render the thread ID. |
%z{<zone name>} | Time zone | Set the time zone of the output to <zone name> . |
%X{<MDC property name>} | Mapped Diagnostics Context Value | Renders the value from Mapped Diagnostics Context |
%X | Mapped Diagnostics Context Values | Renders all the values from Mapped Diagnostics Context in format {property.key=property.value} |
%x | Nested Diagnostics context values | Renders all the values from Nested Diagnostics Context in format {value1.value2} |
3. 결론
Quarkus 로그 설정은 간단하면서도 매우 유연합니다. application.properties
파일 하나만으로 기본 설정부터 고급 설정까지 모두 관리할 수 있어, 클라우드 네이티브 애플리케이션에서 로깅 요구사항을 충족하는 데 큰 도움이 됩니다.
이제 이 애플리케이션에서 로그를 효과적으로 관리하고 출력 형식을 사용자 정의하는 방법을 알았습니다. 이를 통해 애플리케이션의 동작 상태를 더욱 정확하게 파악하고, 문제 발생 시 빠르게 대응할 수 있게 되었습니다.