티스토리 뷰
개요
Golang 개발시에만 로그가 출력되었으면 하는 경우가 있다. 이럴때는 환경변수와 로그 설정을 활용할 수 있다.
단순한 내용이지만 기록해둔다.
코드 예시
- 환경변수 RUN_MODE를 읽어들여서 그 값이 dev 가 아니라면 log의 출력을 io.Discard로 내보낸다(== 버려버린다)
- dev 라면 discard 되지 않고 출력이 된다.
💡 Discard is an io.Writer on which all Write calls succeed without doing anything.
// Go 1.20
package main
import (
"io"
"log"
"os"
)
func main() {
runMode := os.Getenv("RUN_MODE")
if runMode != "dev" {
log.SetOutput(io.Discard)
}
log.SetFlags(log.LstdFlags | log.Lshortfile)
log.Println("This log will be seen only when RUN_MODE is 'dev'")
fmt.Println("Program started")
}
결과
그냥 실행
$ go run .
Program started
환경변수와 함께 실행
$ RUN_MODE=dev go run .
2009/11/10 23:00:00 prog.go:18: This log will be seen only when RUN_MODE is 'dev'
Program started
반응형
'golang' 카테고리의 다른 글
Go: 함수가 리턴해도 함수 속 고루틴은 종료되지 않는다 (0) | 2023.10.10 |
---|---|
Golang: timezone 설정하기 (0) | 2023.06.11 |
Golang: HTTP 클라이언트의 연결 관리(3) (0) | 2023.05.14 |
Golang: HTTP 클라이언트의 연결 관리(2) (0) | 2023.05.14 |
Golang: HTTP 클라이언트의 연결 관리(1) (0) | 2023.05.14 |
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- github
- 체호프
- pool
- go
- 노션
- bun
- postgres
- notion
- 2023
- 영화
- agile
- solid
- 인텔리제이
- 독서후기
- ORM
- Gin
- 잡학툰
- websocket
- folklore
- Shortcut
- 중용
- strange
- golang
- Bug
- intellij
- ChatGPT
- 명상
- OpenAI
- 클린 애자일
- API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함