>백엔드 개발 >Golang >내 Go 로그가 파일에 기록되지 않는 이유는 무엇입니까?

내 Go 로그가 파일에 기록되지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-21 22:08:17478검색

Why Are My Go Logs Not Writing to File?

Go에서 파일에 로그 쓰기

표준 Go 로깅 패키지를 사용하여 파일에 로그를 쓰려고 하면 사용자에게 문제가 발생할 수 있습니다. 로그 파일이 생성되었지만 비어 있는 상태로 유지됩니다. 이 문제를 해결하려면 로그를 파일에 기록하는 올바른 접근 방식을 이해하는 것이 중요합니다.

제공된 코드에서 다음을 포함하여 여러 접근 방식을 시도했습니다.

  • os. 로그 출력을 위해 Stderr 및 파일을 io.MultiWriter로 설정합니다.
  • 로그를 위해 파일을 io.Writer로 설정
  • 파일을 로깅용 출력으로 직접 설정합니다.

그러나 os.Open("logfile")이 파일을 읽기 전용으로 열기 때문에 이러한 방법은 모두 실패했습니다. , 로그 작성에 적합하지 않습니다.

올바른 접근 방식은 os.OpenFile("testlogfile", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666). 그러면 읽기 및 쓰기용으로 파일이 열리고 로그를 파일에 추가할 수 있습니다.

이 줄을 추가하고 로그 출력을 파일에 설정하면 Go에서 파일에 로그를 성공적으로 쓸 수 있습니다.

f, err := os.OpenFile("testlogfile", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
    log.Fatalf("error opening file: %v", err)
}
defer f.Close()

log.SetOutput(f)
log.Println("This is a test log entry")

위 내용은 내 Go 로그가 파일에 기록되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.