티스토리 뷰
개요
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
- 체호프
- agile
- 독서후기
- 클린 애자일
- 영화
- folklore
- notion
- websocket
- 2023
- ChatGPT
- 잡학툰
- 제이펍
- strange
- Shortcut
- Gin
- golang
- clean agile
- github
- go
- 티스토리챌린지
- bun
- API
- OpenAI
- 인텔리제이
- intellij
- 오블완
- 독서
- solid
- 노션
- Bug
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함