[go] log 패키지를 이용한 로그 파일 회전 설정

목차

  1. 소개
  2. log 패키지의 기본 사용법
  3. 로그 파일 회전 설정
  4. 결론

소개

Go 언어의 log 패키지는 간단하면서도 강력한 로깅 기능을 제공합니다. 대부분의 경우, 기본 로그 기능은 필요한 기능을 충분히 제공하지만, 로그 파일의 크기가 계속해서 커지는 경우를 대비하여 로그 파일을 주기적으로 회전시키는 것이 필요할 수 있습니다. 이번 글에서는 Go 언어에서 log 패키지를 사용하여 로그 파일 회전 설정하는 방법에 대해 알아보겠습니다.

log 패키지의 기본 사용법

먼저, log 패키지를 사용하여 기본적인 로깅을 하는 방법을 알아보겠습니다. 아래는 간단한 예시 코드입니다:

package main

import (
	"log"
	"os"
)

func main() {
	// "log.txt" 파일에 로그를 출력하도록 설정
	file, err := os.Create("log.txt")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	// log 패키지를 사용하여 로그를 출력
	log.SetOutput(file)
	log.Println("Logging to a file!")
}

위 코드를 실행하면, “log.txt” 파일에 “Logging to a file!”이라는 로그가 기록됩니다.

로그 파일 회전 설정

아래는 log 패키지를 사용하여 로그 파일을 일정 크기 이상이 되면 새로운 파일로 전환하는 방법에 대한 예시 코드입니다:

package main

import (
	"log"
	"os"
	"gopkg.in/natefinch/lumberjack.v2"
)

func main() {
	// logger 설정
	logger := &lumberjack.Logger{
		Filename:   "log.txt",
		MaxSize:    10, // megabytes
		MaxBackups: 3,
		MaxAge:     28, // days
	}

	// 로그 출력 설정
	log.SetOutput(logger)

	// test 로그
	log.Println("Logging to a file!")
}

위의 코드에서, lumberjack 패키지를 사용하여 Logger 구조체를 초기화하고, 해당 구조체를 log 패키지의 SetOutput 메소드를 통해 사용합니다. 이를 통해 로그 파일이 설정된 크기(MaxSize), 백업 파일 개수(MaxBackups), 그리고 보관 기간(MaxAge)을 지정하여 로그 파일이 자동으로 회전됩니다.

결론

이번 글에서는 log 패키지를 사용하여 로그 파일 회전 설정하는 방법에 대해 알아보았습니다. 로그 파일 회전은 로그 파일의 크기를 관리하고, 오래된 로그를 보관하는 데 도움이 됩니다. Go 언어를 사용하여 로깅을 구현할 때 유용하게 활용될 수 있습니다.

참고 문헌