From 4e67cd4bafaa61c35eeee69a93779f5a908e141b Mon Sep 17 00:00:00 2001 From: Luis Pater Date: Wed, 10 Sep 2025 03:15:58 +0800 Subject: [PATCH] Resolve relative logsDir to executable directory in FileRequestLogger --- internal/logging/request_logger.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/internal/logging/request_logger.go b/internal/logging/request_logger.go index f655ad9f..a4ba8a56 100644 --- a/internal/logging/request_logger.go +++ b/internal/logging/request_logger.go @@ -103,6 +103,17 @@ type FileRequestLogger struct { // Returns: // - *FileRequestLogger: A new file-based request logger instance func NewFileRequestLogger(enabled bool, logsDir string) *FileRequestLogger { + // Resolve logsDir relative to the executable directory when it's not absolute. + if !filepath.IsAbs(logsDir) { + if exePath, err := os.Executable(); err == nil { + // Resolve symlinks to get the real executable path + if realExe, errEvalSymlinks := filepath.EvalSymlinks(exePath); errEvalSymlinks == nil { + exePath = realExe + } + execDir := filepath.Dir(exePath) + logsDir = filepath.Join(execDir, logsDir) + } + } return &FileRequestLogger{ enabled: enabled, logsDir: logsDir,