반응형
fmt에서 출력하는 콘솔 로그와, log에서 출력하는 파일 로그를 동시에 찍고 싶은 경우가 생겨서,
Printf를 하나의 function으로 만들어서 사용하기로 결정했다.
Printf는 string format과 가변인자를 전달받을 수 있도록 구성되어 있다.
func Printf(format string, v ...interface{}) { ... }
Java의 경우 가변인자를 전달할때 변수명만 넘겨주면, 제대로 동작을 했었기에
아래와 같이 만들어보았다.
func logging(format string, v ...interface{}) { fmt.Printf(format, v) log.Printf(format, v) }
테스트를 해본결과 변수 여러개를 넘겼을 경우, 가변인자의 0번째 값만 전달이 되는 현상이 발생을 하였다.
golang에서는 가변인자 전달 시에는 아래와 같이 전달해주는 function에도 ... 를 붙여서 사용해야 한다고 한다.
func logging(format string, v ...interface{}) { fmt.Printf(format, v...) log.Printf(format, v...) }
다시 테스트를 해보니, 원하는대로 동작한다.
반응형
'개발 > Go' 카테고리의 다른 글
[Go] set timezone (0) | 2016.06.28 |
---|---|
[Go] XML Marshal / UnMarshal (0) | 2016.06.28 |
[Go] SyntaxHighlighter (0) | 2016.06.28 |
[Go] LumberJack for Logging (0) | 2016.06.28 |
[개발환경] Go + SubLimeText 3 + GoSublime (0) | 2016.06.11 |