일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스칼라
- 스칼라 동시성
- Play2
- Golang
- 이더리움
- 스칼라 강좌
- 파이썬 머신러닝
- akka 강좌
- Adapter 패턴
- Play2 로 웹 개발
- Akka
- play2 강좌
- 블록체인
- 안드로이드 웹뷰
- 하이퍼레저 패브릭
- Hyperledger fabric gossip protocol
- 그라파나
- play 강좌
- 하이브리드앱
- CORDA
- Actor
- 엔터프라이즈 블록체인
- 파이썬 강좌
- 스위프트
- hyperledger fabric
- 파이썬 동시성
- 주키퍼
- 파이썬 데이터분석
- 플레이프레임워크
- 파이썬
- Today
- Total
HAMA 블로그
Play2.4 로 웹 개발 시작하기 - (4) 로깅처리 본문
Play2.4 로 웹 개발 시작하기
쉽고, 재밌고, 강력하고, 편리한 웹 프레임워크 Play2 (scala 언어기반) 을 배워봅시다.
1. Play2.4 웹 개발 시작하기 - 설치 및 프로젝트 만들기
2. Play2.4 웹 개발 시작하기 - 프로젝트 살펴보기
3. Play2.4 웹 개발 시작하기 - 나만의 프로젝트 만들기
4. Play2.4 웹 개발 시작하기 - 로깅처리
4. 로깅처리
Play2 프레임워크는 기본적으로 logback 을 지원하므로 별다른 의존성을 추가할 필요는 없다.
먼저 application.conf 를 보면 기본적으로 아래와 같이 세팅되어 있는데 주석처리하고
# Root logger:
logger.root=DEBUG
# Logger used by the framework:
logger.play=DEBUG
# Logger provided to your application:
logger.application=DEBUG
conf/logback.xml 파일을 추가 해서 logback 관련 내용을 채우자.
기본적으로 채워지는 내용은 아래와 같다.
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/application.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
</encoder>
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="DEBUG" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
출력이 파일과 콘솔 두 방향으로 나온다.
개인적으로 application 의 레벨을 DEBUG 로 바꾸었다.
import play.api.Logger // thing //
def thingByDate (kind: String, year: Int, month: Int) = Action {
Logger.debug("Attempting Logging.")
val res : List[ThingStat] = kind match {
case "1" => statisticsModel.analysisThingDayStatistics(year, month)
case "2" => statisticsModel.analysisThingMonthStatistics(year)
case "3" => statisticsModel.analysisThingYearStatistics()
case _ => Logger.error("Exception with abnormalArgument") ; Nil
}
Ok(Json.toJson(res))
}
play.api.Logger 를 임포트 한후에 Logger.debug("Attempting Logging.") 을 찍으면 잘 출력된다.
Logger.debug(s"thingByDate -> kind : ${kind}")
이렇게 format 을 사용하는 대신해 간단하게 매개변수를 넣어서 출력 할 수 도 있다.
case t: Throwable => {
// Log error with message and Throwable.
Logger.error("Exception with somthing ", t)
예외를 출력해주고 싶을땐 위처럼 사용하면 된다.
위의 로그출력은 디폴트 로거 ("application") 를 사용한 거였다.
이제 자신만의 로거를 정의해 서 사용해보자.
val accessLogger: Logger = Logger("access")
이렇게 자신만의 로거를 만들 수 있으며 보통은 클래스 당 하나씩 맞춰서 사용한다.
val logger = Logger(this.getClass())
나머지 logback 그 자체에 대한 내용은 전용 문서를 찾아보자.
'PlayFramework2' 카테고리의 다른 글
[Play2] Filter (번역) (0) | 2016.09.28 |
---|---|
[Play2] Action composition (번역) (0) | 2016.09.28 |
specs2 로 하는 유닛테스트 (번역) (0) | 2016.09.02 |
Play2.4 로 웹 개발 시작하기 - (3) 나의 프로젝트 만들기 (0) | 2016.08.27 |
Play2.4 로 웹 개발 시작하기 - (2) 프로젝트 살펴보기 (0) | 2016.08.27 |