KumKeeHyun / medium-rare

마이크로서비스 아키텍처로 만들어보는 예시 프로젝트

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support Logging

KumKeeHyun opened this issue · comments

방향

막 거창하게 로그 수집, 집계, 시각화 까지는 하지 않고 그냥 서비스 레벨에서 파일에 로그를 남기는 정도만 진행하려 한다. 왜냐면 로그를 남기는 것도 처음해보기 때문에.. ㅎㅎ. 그래서 로그를 왜, 어떻게 남겨야 하는지, 로그 구성, 레벨 등등을 좀 공부해야 한다. 나중에 시간이 남는다면 Kafka, Elastic Stack 을 이용해서 로그 수집, 시각화까지 해보기로 하자.

사용할 패키지

  • zap
    • 거의 모든 마이크로서비스를 Golang으로 작성할 예정이라서 이것만 알아보았다.
    • zap의 주장에 따르면 go의 다른 로그 패키지들보다 성능이 아주 좋다고 한다. 우버니까 믿고 사용해보려 한다.
    • 로그 인코딩 형식, 세부 설정을 커스텀 할지는 좀 고민해봐야 겠다. 이 프로젝트가 로깅이 주요 목적이 아니라서 어느정도 타협해가면서 진행하려 한다.
    • 사용하는 방법 참고할 프로젝트

공부자료 링크

gin에 zap logger 사용하기

import ginzap "github.com/gin-contrib/zap"

...

r := gin.New()
logger, _ := zap.NewProduction()

r.Use(ginzap.Ginzap(logger, time.RFC3339, true))
r.Use(ginzap.RecoveryWithZap(logger, true))