LANGUAGE/Java & Groovy 2018. 1. 31. 23:58

!markdown


# Java


## Logback


가장 쉽고 일반적인 설정방법은 logback.xml에 ConsoleAppender 하나를 만드는 것이다.


```xml

<!-- Console Log -->

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

<encoder>

<charset>UTF-8</charset>

<pattern>[%d] [%highlight(%-5level)] %logger[%cyan(%method:%line)] - %msg %n</pattern>

</encoder>

</appender>


<root level="DEBUG">

    <appender-ref ref="CONSOLE" />

</root>

```


그런데, `개발할 때` 만큼은 구분이 되는 `다른 형식의 로그`를 보고 싶다면???


### Logback 설정파일 적용 순서 

[https://logback.qos.ch/manual/configuration.html#auto_configuration](https://logback.qos.ch/manual/configuration.html#auto_configuration)

1. logback-test.xml

2. logback.groovy

3. logback.xml


`logback-test.xml` 파일이 존재하면 logback.xml 파일을 읽지 않고 logback-test.xml만 읽어서 설정을 적용한다. logback-test.xml은 기교를 섞어서 예쁘게 로그가 나오게 설정하고, 배포시에는 logback-test.xml의 이름을 변경시키거나 제외시키면 개발시에만 적용되는 로그를 만들 수 있다.


`Gradle의 경우`


- 다음을 build.gradle에 추가하면 war패키지를 만들때 파일명이 변경된다.

```gradle

//- (WAR빌드시) 개발용 Logback 설정파일 이름 바꾸기 

war.rootSpec.rename("logback-test.xml", "logback-develop.xml")

```


- 다음을 build.gradle에 추가하면 war패키지를 만들때 제외된다.

```gradle

//- (WAR빌드시) 개발용 Logback설정 파일 제외하기 

war.rootSpec.exclude "logback-test.xml"

```




### 참고


- Chapter 3: Logback configuration: [https://logback.qos.ch/manual/configuration.html#auto_configuration](https://logback.qos.ch/manual/configuration.html#auto_configuration)