Go Agent v0.4.3
2024년 10월 16일
Fixed
os.Stdout
, os.Stderr
로그 수집 오류 수정
-
trace.Init
함수에서 로그 수집 기능을 활성화하도록 수정합니다. 최대한 다른 로그 라이브러리 보다 먼저 실행할 수 있도록 변경합니다. -
os.Stdout
,os.Stderr
를 래핑한 io.Writer를 사용할 수 있는 함수를 추가했습니다.
다음은 변경된 로그 수집 기능 사용 안내입니다.
에이전트 설정하기
애플리케이션 실행 전에 whatap.conf 파일에 에이전트 옵션을 설정하세요.
whatap.conf
logsink_enabled=true
# Enable stdout collection
logsink_stdout_enabled=true
# Enable stderr collection
logsink_stderr_enabled=true
# Optional. This is a setting for compressing data.
logsin_zip_enabled=true
로그 라이브러리 초기화 전
먼저 trace.Init()
함수를 호출해야 합니다. 내부적으로 os.Stdout
, os.Stderr
를 래핑합니다. 이후 로그 라이브러리가 os.Stdout
, os.Stderr
를 설정하면 자동으로 로그를 수집합니다.
zap 라이브러리 예
os.Stdout
을 설정하기 전에 trace.Init()
함수를 호출하면 자동으로 로그를 수집합니다. os.Stdout
출력은 유지하면서 동시에 와탭 로그로 수집합니다.
zap library example
import (
"github.com/whatap/go-api/trace"
"github.com/whatap/go-api/logsink"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
func main() {
trace.Init(nil)
//It must be executed before closing the app.
defer trace.Shutdown()
// fmt.Println("Logger stdout=", os.Stdout, zapcore.AddSync(os.Stdout))
consoleCore := zapcore.NewCore(
zapcore.NewConsoleEncoder(consoleEncoderConfig),
zapcore.AddSync(os.Stdout),
zap.InfoLevel,
)
// Menggabungkan core file dan console
core := zapcore.NewTee(consoleCore)
Log = zap.New(core, zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel))
Log.Info("logger started")
...
}