Log 체크 방법으로, 에러 위치 체크 방법- Fatalf
- 프로그래밍 하다 보면, 가끔 어디서 오류가 났나, 데이타가 잘 전달 되었나, 체크하고 싶을때, 메시지 팝업이나, Log 체크를 할 경우, Fatalf 를 사용시 편리할거 같아서 기록합니다.
- 에러를 보고하고, 프로그램을 종료합니다.
- log.Fatalf는 포맷 문자열을 지원하는 log 함수입니다.
- 여러 변수를 추가하고, 출력할수 있습니다.
- log.Fatal은 에러만 보고합니다.
- import "log" // log 패키지가 필요합니다.
%v 기본 형식 출력 log.Fatalf("%v", err)
%s 문자열 출력 log.Fatalf("%s", fname)
%d 정수 출력 log.Fatalf("%d", Number)
%f 실수 출력 log.Fatalf("%f", pi)
%t Boolean 출력 log.Fatalf("%t", isErr)
%+v 상세한 구조체 출력 log.Fatalf("%+v", myStruct)
log.Fatalf("%v: 이런 문제로 여기쯤 에러 발생", aaa변수)
log.Fatal(fmt.Sprintf("%v: 여기쯤 값이 이러네", err))
Sprintf- 문자열 출력말고, 포맷팅을 위해 사용되는 Go의 내장 함수- 포맷팅된 문자열을 반환
예제] result := fmt.Sprintf("이름: %s, 나이: %d", name, age)
%s 문자열 "Hello" → "Hello"
%d 10진수 정수 42 → "42"
%f 부동소수점 실수 3.14 → "3.140000"
%.nf n 자리까지 소수점 제한 3.14159 → "3.14" (%.2f)
%t 불리언 값 true → "true"
%v 기본 형식 (기본값 출력) 123 → "123"
%+v 필드 이름 포함 (구조체 등)
%#v Go 구문으로 값 표현
%T 값의 타입 출력 "Hello" → "string"
%% 퍼센트 기호 출력 (%) "%%" → "%"
log.Fatal(err) //에러 보고하고 프로그램 종료함.
exit status 1 // 항상 종료 코드로 1을 반환 합니다.
os.Exit
-일반적으로 비정상 종료 exit status 1 (Error)상태를 나타냅니다.
- 0 은 정상 종료를 의미합니다.
- 1 은 비정상 종료를 의미합니다.
- 종료 상태 코드는 프로그램이 실행 마치고, 운영 체제에 반환하는 숫자 값입니다.
- 프로그램의 성공/실패 여부를 확인하는대도 사용됩니다.
- exit status 1은 프로그램 실행 중에 오류가 발생하거나, 프로그램이 예상치 못한 상황에서 종료되었음을 나타냅니다.
- log.Fatal은 에러 메시지를 출력한 후 os.Exit(1)을 호출하여 프로그램을 종료합니다.
- os.Exit(1) 직접 호출시: os.Exit 함수는 프로그램을 종료하고 지정된 상태 코드를 반환합니다.
- Go에서 종료 상태 코드를 제어하려면 os.Exit 함수를 사용합니다.
반환 값이 2개 인경우 무시하기 : _
input, _ := reader.ReadString('\n')
반환 값이 2개 인 경우 err 반환값을 변수로 저장하기
input, err := reader.ReadString('\n')
함수나 메서드는 - 문제가 없으면 에러값으로 nil을 반환합니다.
- err 값이 nil 이면, 문제가 없는것이고,
- err 값이 nil 아니면, 에러가 발생된 것임.
if err != nil { // 에러가 nil 이 아니면(에러가 발생했으면)
log.Fatal(err) //에러 보고후, 프로그램 종료함.
}