go 언어용 python-like log 모듈
By SeukWon Kang
goguelike 작업을 하면서 만들어진 모듈들 중 범용성이 높은 모듈들을 정리해서 공개하는 작업을 시작합니다.
이미 기존의 글들을 통해 소개된 모듈들은 id 생성 :http://kasw.blogspot.kr/2015/01/go-serial-id.html rand : http://kasw.blogspot.kr/2015/02/go.html runstep : http://kasw.blogspot.kr/2015/02/goroutine.html
이 있습니다. - 각각의 글을 수정해서 github 링크를 추가해 두었습니다.
이번에 소개할 모듈은 pyhon log처럼 사용하는 log package입니다. log 용으로 만든 것으로 rand 때와 같이 기존 go 언어의 표준 라이브러리를 확장하는 개념으로 만든것 입니다.
만든 이유는 아무래도 python을 쓴 기간이 길다보니 python 스타일의 로그 함수가 익숙한 관계로 최대한 비슷한 느낌으로 사용할수 있게 만들어 사용 중입니다.
즉 log.Warn , log.Info, log.Error, log.Debug 함수들을 추가 했습니다.
다만 좀 달라진 것은 loglevel이 우선 순위를 가지는 번호가 아니고 동등한 레벨인 bit flag 형태로 바꾸었습니다. 즉 warn 을 끈다고 해서 info나 debug 가 꺼지는 것은 아닙니다.
가능하면 동적으로 log level을 추가하는 기능도 넣고 싶었지만 go 언어에서 동적으로 struct method를 추가하는 방법을 찾지 못해서 넣지 못했습니다.
그래도 가능한 log level을 추가 하기 쉬운 구조로 만들어 두긴 했습니다. 그래도 코드를 수정해야 하는 것은 어쩔수 없습니다만..
github 위치는 https://github.com/kasworld/log
입니다.