Update logging

Change-Id: I13279582aa717edad5d56323866b941db1919404
diff --git a/server/git/pull_request_example.go b/server/git/pull_request_example.go
index 5e34dc4..5c70d21 100644
--- a/server/git/pull_request_example.go
+++ b/server/git/pull_request_example.go
@@ -2,25 +2,28 @@
 
 import (
 	"context"
-	"fmt"
-	"log"
+	"log/slog"
 	"net/http"
+	"os"
 	"time"
 )
 
-// ExamplePullRequestUsage demonstrates how to use the pull request capabilities
+// ExamplePullRequestUsage demonstrates how to use pull request functionality
 func ExamplePullRequestUsage() {
 	ctx := context.Background()
 
-	// Example 1: GitHub Pull Requests
-	exampleGitHubPullRequests(ctx)
+	// Create logger
+	logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}))
 
-	// Example 2: Gerrit Pull Requests
-	exampleGerritPullRequests(ctx)
+	// Example with GitHub
+	exampleGitHubPullRequests(ctx, logger)
+
+	// Example with Gerrit
+	exampleGerritPullRequests(ctx, logger)
 }
 
-func exampleGitHubPullRequests(ctx context.Context) {
-	fmt.Println("=== GitHub Pull Request Example ===")
+func exampleGitHubPullRequests(ctx context.Context, logger *slog.Logger) {
+	logger.Info("=== GitHub Pull Request Example ===")
 
 	// Create GitHub configuration
 	githubConfig := GitHubConfig{
@@ -35,7 +38,7 @@
 	// Create Git instance with GitHub pull request capabilities
 	git := NewGitWithPullRequests("/path/to/repo", GitConfig{
 		Timeout: 30 * time.Second,
-	}, githubProvider)
+	}, githubProvider, logger)
 
 	// Create a new pull request
 	prOptions := PullRequestOptions{
@@ -51,11 +54,11 @@
 
 	pr, err := git.CreatePullRequest(ctx, prOptions)
 	if err != nil {
-		log.Printf("Failed to create pull request: %v", err)
+		logger.Error("Failed to create pull request", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Created pull request: %s (#%d)\n", pr.Title, pr.Number)
+	logger.Info("Created pull request", slog.String("title", pr.Title), slog.Int("number", pr.Number))
 
 	// List pull requests
 	listOptions := ListPullRequestOptions{
@@ -67,20 +70,20 @@
 
 	prs, err := git.ListPullRequests(ctx, listOptions)
 	if err != nil {
-		log.Printf("Failed to list pull requests: %v", err)
+		logger.Error("Failed to list pull requests", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Found %d pull requests\n", len(prs))
+	logger.Info("Found pull requests", slog.Int("count", len(prs)))
 
 	// Get a specific pull request
 	pr, err = git.GetPullRequest(ctx, pr.ID)
 	if err != nil {
-		log.Printf("Failed to get pull request: %v", err)
+		logger.Error("Failed to get pull request", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Pull request status: %s\n", pr.State)
+	logger.Info("Pull request status", slog.String("state", pr.State))
 
 	// Update a pull request
 	updateOptions := PullRequestOptions{
@@ -91,11 +94,11 @@
 
 	updatedPR, err := git.UpdatePullRequest(ctx, pr.ID, updateOptions)
 	if err != nil {
-		log.Printf("Failed to update pull request: %v", err)
+		logger.Error("Failed to update pull request", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Updated pull request: %s\n", updatedPR.Title)
+	logger.Info("Updated pull request", slog.String("title", updatedPR.Title))
 
 	// Merge a pull request
 	mergeOptions := MergePullRequestOptions{
@@ -106,15 +109,15 @@
 
 	err = git.MergePullRequest(ctx, pr.ID, mergeOptions)
 	if err != nil {
-		log.Printf("Failed to merge pull request: %v", err)
+		logger.Error("Failed to merge pull request", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Println("Pull request merged successfully")
+	logger.Info("Pull request merged successfully")
 }
 
-func exampleGerritPullRequests(ctx context.Context) {
-	fmt.Println("=== Gerrit Pull Request Example ===")
+func exampleGerritPullRequests(ctx context.Context, logger *slog.Logger) {
+	logger.Info("=== Gerrit Pull Request Example ===")
 
 	// Create Gerrit configuration
 	gerritConfig := GerritConfig{
@@ -130,7 +133,7 @@
 	// Create Git instance with Gerrit pull request capabilities
 	git := NewGitWithPullRequests("/path/to/repo", GitConfig{
 		Timeout: 30 * time.Second,
-	}, gerritProvider)
+	}, gerritProvider, logger)
 
 	// Create a new change (pull request)
 	prOptions := PullRequestOptions{
@@ -142,11 +145,11 @@
 
 	pr, err := git.CreatePullRequest(ctx, prOptions)
 	if err != nil {
-		log.Printf("Failed to create change: %v", err)
+		logger.Error("Failed to create change", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Created change: %s (#%d)\n", pr.Title, pr.Number)
+	logger.Info("Created change", slog.String("title", pr.Title), slog.Int("number", pr.Number))
 
 	// List changes
 	listOptions := ListPullRequestOptions{
@@ -158,20 +161,20 @@
 
 	prs, err := git.ListPullRequests(ctx, listOptions)
 	if err != nil {
-		log.Printf("Failed to list changes: %v", err)
+		logger.Error("Failed to list changes", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Found %d changes\n", len(prs))
+	logger.Info("Found changes", slog.Int("count", len(prs)))
 
 	// Get a specific change
 	pr, err = git.GetPullRequest(ctx, pr.ID)
 	if err != nil {
-		log.Printf("Failed to get change: %v", err)
+		logger.Error("Failed to get change", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Change status: %s\n", pr.State)
+	logger.Info("Change status", slog.String("state", pr.State))
 
 	// Update a change
 	updateOptions := PullRequestOptions{
@@ -181,11 +184,11 @@
 
 	updatedPR, err := git.UpdatePullRequest(ctx, pr.ID, updateOptions)
 	if err != nil {
-		log.Printf("Failed to update change: %v", err)
+		logger.Error("Failed to update change", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Updated change: %s\n", updatedPR.Title)
+	logger.Info("Updated change", slog.String("title", updatedPR.Title))
 
 	// Submit a change (merge)
 	mergeOptions := MergePullRequestOptions{
@@ -195,11 +198,11 @@
 
 	err = git.MergePullRequest(ctx, pr.ID, mergeOptions)
 	if err != nil {
-		log.Printf("Failed to submit change: %v", err)
+		logger.Error("Failed to submit change", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Println("Change submitted successfully")
+	logger.Info("Change submitted successfully")
 }
 
 // Example of using both providers in the same application
@@ -218,7 +221,7 @@
 			BaseURL: "https://api.github.com",
 		}
 		githubProvider := NewGitHubPullRequestProvider("owner", "repo", githubConfig)
-		git = NewGitWithPullRequests("/path/to/repo", GitConfig{}, githubProvider)
+		git = NewGitWithPullRequests("/path/to/repo", GitConfig{}, githubProvider, nil) // Pass nil for logger as it's not used in this example
 	} else {
 		// Use Gerrit
 		gerritConfig := GerritConfig{
@@ -227,7 +230,7 @@
 			BaseURL:  "https://gerrit.example.com",
 		}
 		gerritProvider := NewGerritPullRequestProvider("project", gerritConfig)
-		git = NewGitWithPullRequests("/path/to/repo", GitConfig{}, gerritProvider)
+		git = NewGitWithPullRequests("/path/to/repo", GitConfig{}, gerritProvider, nil) // Pass nil for logger as it's not used in this example
 	}
 
 	// Use the same interface regardless of provider
@@ -240,9 +243,9 @@
 
 	pr, err := git.CreatePullRequest(ctx, prOptions)
 	if err != nil {
-		log.Printf("Failed to create pull request: %v", err)
+		slog.Error("Failed to create pull request", slog.String("error", err.Error()))
 		return
 	}
 
-	fmt.Printf("Created pull request: %s\n", pr.Title)
+	slog.Info("Created pull request", slog.String("title", pr.Title))
 }