[go] log 패키지를 이용한 로깅과 동시에 콘솔 출력

Go 언어에서 로깅은 중요한 디버깅 및 모니터링 도구입니다. log 패키지는 Go 언어의 내장 로깅 라이브러리로, 간단하면서도 효율적인 로깅을 제공합니다. 이 포스트에서는 log 패키지를 사용하여 동시에 파일과 콘솔에 로그를 출력하는 방법을 알아보겠습니다.

로그 설정하기

우선 log.New 함수를 사용하여 사용자 정의 로거를 만들고, 이를 통해 로그를 설정합니다. 아래는 로그 파일과 콘솔에 동시에 출력하는 예제 코드입니다:

package main

import (
	"log"
	"os"
)

func main() {
	file, err := os.OpenFile("logfile.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	logger := log.New(io.MultiWriter(file, os.Stdout), "prefix ", log.Ldate|log.Ltime)

	logger.Println("This is a log message")
}

위의 코드는 제어 흐름을 따라 파일에 로그를 저장하고, 동시에 콘솔에도 출력합니다. 이때 io.MultiWriter를 사용하여 파일과 콘솔을 함께 사용하고, log.New로 사용자 정의 로거를 만듭니다.

결과 확인하기

위의 코드를 실행하면 “logfile.log” 파일에 로그가 기록되며, 콘솔에도 로그가 출력됩니다.

이제 log 패키지를 사용해서 로깅과 동시에 콘솔 출력을 할 수 있게 되었습니다! 이를 통해 애플리케이션을 실행 중에 유용한 정보를 확인하고 디버깅하는 데 도움이 될 것입니다.

참고 자료