Skip to content

Commit

Permalink
🔧 Consolidate logger setup and usage across the application
Browse files Browse the repository at this point in the history
  • Loading branch information
wesen committed Jan 21, 2025
1 parent aefff25 commit 036ffc7
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 30 deletions.
17 changes: 16 additions & 1 deletion changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,4 +224,19 @@ Made session ID optional in SSE transport by using a default session when none i
- Made session ID optional in server and client SSE transport
- Added default session support in server
- Removed session ID requirement from client
- Updated request ID handling to follow MCP spec
- Updated request ID handling to follow MCP spec

# Simplified zerolog caller configuration

Replaced custom caller marshaler with zerolog's built-in Caller() for simpler and more maintainable code.

- Removed custom caller marshaler function in both client and server
- Using zerolog's built-in Caller() functionality
- Added proper zerolog/log import in server

## Logger Consolidation

Consolidated logging setup to use a consistent logger throughout the application:
- Set up global logger with console writer in main.go
- Removed duplicate logger creation in createClient
- Ensured client.go uses the local logger consistently
27 changes: 10 additions & 17 deletions cmd/mcp-client/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,19 @@ Supports both stdio and SSE transports for client-server communication.`,
fmt.Fprintf(os.Stderr, "Invalid log level %s, defaulting to info\n", logLevel)
level = zerolog.InfoLevel
}

// Set up console writer for colored output
consoleWriter := zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339}
logger := zerolog.New(consoleWriter).With().Timestamp()
if withCaller {
logger = logger.Caller()
}
log.Logger = logger.Logger()

zerolog.SetGlobalLevel(level)
if debug {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
if withCaller {
zerolog.CallerMarshalFunc = func(pc uintptr, file string, line int) string {
short := file
for i := len(file) - 1; i > 0; i-- {
if file[i] == '/' {
short = file[i+1:]
break
}
}
return fmt.Sprintf("%s:%d", short, line)
}
}
},
}

Expand Down Expand Up @@ -320,10 +317,6 @@ Supports both stdio and SSE transports for client-server communication.`,
}

func createClient(ctx context.Context) (*client.Client, error) {
// Use ConsoleWriter for colored output
consoleWriter := zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339}
logger := zerolog.New(consoleWriter).With().Timestamp().Logger()

var t client.Transport
var err error

Expand All @@ -345,7 +338,7 @@ func createClient(ctx context.Context) (*client.Client, error) {
}

// Create and initialize client
c := client.NewClient(logger, t)
c := client.NewClient(log.Logger, t)
log.Debug().Msgf("Initializing client")
err = c.Initialize(ctx, protocol.ClientCapabilities{
Sampling: &protocol.SamplingCapability{},
Expand Down
13 changes: 3 additions & 10 deletions cmd/mcp-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/go-go-golems/go-go-mcp/pkg/server"
"github.com/go-go-golems/go-go-mcp/pkg/tools"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"github.com/spf13/cobra"
)

Expand Down Expand Up @@ -53,16 +54,8 @@ providing a framework for building MCP servers and clients.`,
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
if withCaller {
zerolog.CallerMarshalFunc = func(pc uintptr, file string, line int) string {
short := file
for i := len(file) - 1; i > 0; i-- {
if file[i] == '/' {
short = file[i+1:]
break
}
}
return fmt.Sprintf("%s:%d", short, line)
}
log.Debug().Msgf("Setting caller")
log.Logger = log.With().Caller().Logger()
}
},
}
Expand Down
3 changes: 1 addition & 2 deletions pkg/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (

"github.com/go-go-golems/go-go-mcp/pkg/protocol"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)

// Transport represents a client transport mechanism
Expand Down Expand Up @@ -71,7 +70,7 @@ func (c *Client) Initialize(ctx context.Context, capabilities protocol.ClientCap
}
c.setRequestID(request)

log.Debug().Msgf("Sending initialize request")
c.logger.Debug().Msg("Sending initialize request")
response, err := c.transport.Send(ctx, request)
if err != nil {
return fmt.Errorf("failed to send initialize request: %w", err)
Expand Down

0 comments on commit 036ffc7

Please sign in to comment.