검색결과 리스트
글
!markdown
# Java
### Logback (로그백)
Java프로젝트에서 Log를 다루기 위해 `Logback 라이브러리`를 쓰는데, 일반적으로 logback.xml 파일로 로그설정을 다루곤한다.
`runtime중`에 원하는 대로 다룰 수 있을까 싶어서 온갖 문서와 예제를 뒤져보고 테스트해 봤는데
Logback은 정말 유연하다.
만들었던 소스 예제를 정리겸 공유하자 :D
### Groovy Source
Groovy 소스이지만, Java User라면 비슷하기에 금방 파악하실 수 있을 것이라 생각됩니다 ㅎㅎ
### Example) Change logger level on runtime (실행중에 Logger Level 변경하기)
```java
String loggerLevel = "debug";
Level changeLevel = Level.valueOf(loggerLevel);
//변경할 로거리스트
List<String> userControlLoggerList = ['com.meta', 'com.datastreams', 'com.ibatis', 'org.mybatis']
//로거컨텍스트
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
//로거리스트에 있는 것만 변경
userControlLoggerList.each{ loggerNameToChange ->
Logger loggerToChange = loggerContext.getLogger(loggerNameToChange);
loggerToChange.setLevel(changeLevel);
}
```
### Example) Controller on Spring (Spring에서 로그레벨 변경가능한 Controller 만들기)
- groovy 소스
```java
@Controller
@RequestMapping("/log/control/*")
public class MaintenanceController {
private org.slf4j.Logger logger = LoggerFactory.getLogger(getClass())
List<String> userControlLoggerList = ['com.meta', 'com.datastreams', 'com.ibatis', 'org.mybatis']
/*************************
* Logger Level 변경
*************************/
@RequestMapping("level")
@ResponseBody
boolean changeLoggerLevel(String loggerLevel){
//- Logger
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory()
List<Logger> loggerList = loggerContext.getLoggerList().findAll{ loggerElement -> userControlLoggerList.contains(loggerElement.name) }
Level changeLevel = Level.valueOf(loggerLevel)
loggerList.each{ loggerElement ->
loggerElement.level = changeLevel
logger.info("[Change Logger Level] ${loggerElement.name} was set to ${loggerElement.level}")
}
return true
}
}
```
'LANGUAGE > Java & Groovy ' 카테고리의 다른 글
[Java] Logback - EvaluatorFilter를 이용해서 경우에 따라 로그에 색입히기 예제 (0) | 2018.02.01 |
---|---|
[Java] Logback - logback-test.xml과 개발용 설정 만들기 (0) | 2018.01.31 |
[Java] Logback - 모든 로그는 Logger를 통하게 하라. (0) | 2017.11.11 |
[Java] Logback - 컬러링 (0) | 2017.11.11 |
[Java] 형형색색 색깔 출력 ( print ) (0) | 2017.11.11 |