Skip to content

Commit 68ba185

Browse files
committed
migrate to log/slog as logger
Signed-off-by: Markus Blaschke <[email protected]>
1 parent 882ce92 commit 68ba185

File tree

15 files changed

+115
-123
lines changed

15 files changed

+115
-123
lines changed

azuresdk/armclient/client.go

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package armclient
22

33
import (
44
"context"
5+
"fmt"
6+
"log/slog"
57
"os"
68
"strings"
79
"time"
@@ -11,7 +13,6 @@ import (
1113
"github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud"
1214
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
1315
cache "github.com/patrickmn/go-cache"
14-
zap "go.uber.org/zap"
1516
"k8s.io/apimachinery/pkg/labels"
1617

1718
commonAzidentity "github.com/webdevops/go-common/azuresdk/azidentity"
@@ -32,7 +33,7 @@ type (
3233

3334
cloud cloudconfig.CloudEnvironment
3435

35-
logger *zap.SugaredLogger
36+
logger *slog.Logger
3637

3738
cache *cache.Cache
3839
cacheTtl time.Duration
@@ -49,23 +50,23 @@ type (
4950
)
5051

5152
// NewArmClientFromEnvironment creates new Azure SDK ARM client from environment settings
52-
func NewArmClientFromEnvironment(logger *zap.SugaredLogger) (*ArmClient, error) {
53+
func NewArmClientFromEnvironment(logger *slog.Logger) (*ArmClient, error) {
5354
var azureEnvironment string
5455

5556
if azureEnvironment = os.Getenv("AZURE_ENVIRONMENT"); azureEnvironment == "" {
5657
logger.Info(`env var AZURE_ENVIRONMENT is not set, assuming "AzurePublicCloud"`)
5758
azureEnvironment = string(cloudconfig.AzurePublicCloud)
5859

5960
if err := os.Setenv("AZURE_ENVIRONMENT", azureEnvironment); err != nil {
60-
logger.Panic(`unable to set AZURE_ENVIRONMENT`)
61+
return nil, fmt.Errorf(`unable to set AZURE_ENVIRONMENT`)
6162
}
6263
}
6364

6465
return NewArmClientWithCloudName(azureEnvironment, logger)
6566
}
6667

6768
// NewArmClient creates new Azure SDK ARM client
68-
func NewArmClient(cloudConfig cloudconfig.CloudEnvironment, logger *zap.SugaredLogger) *ArmClient {
69+
func NewArmClient(cloudConfig cloudconfig.CloudEnvironment, logger *slog.Logger) *ArmClient {
6970
client := &ArmClient{}
7071
client.cloud = cloudConfig
7172

@@ -74,7 +75,7 @@ func NewArmClient(cloudConfig cloudconfig.CloudEnvironment, logger *zap.SugaredL
7475

7576
client.TagManager = &ArmClientTagManager{
7677
client: client,
77-
logger: logger.With(zap.String("component", "armClientTagManager")),
78+
logger: logger.With(slog.String("component", "armClientTagManager")),
7879
}
7980

8081
client.initCache()
@@ -84,10 +85,10 @@ func NewArmClient(cloudConfig cloudconfig.CloudEnvironment, logger *zap.SugaredL
8485
}
8586

8687
// NewArmClientWithCloudName creates new Azure SDK ARM client with environment name as string
87-
func NewArmClientWithCloudName(cloudName string, logger *zap.SugaredLogger) (*ArmClient, error) {
88+
func NewArmClientWithCloudName(cloudName string, logger *slog.Logger) (*ArmClient, error) {
8889
cloudConfig, err := cloudconfig.NewCloudConfig(cloudName)
8990
if err != nil {
90-
logger.Panic(err.Error())
91+
return nil, err
9192
}
9293

9394
return NewArmClient(cloudConfig, logger), nil
@@ -100,7 +101,7 @@ func (azureClient *ArmClient) initCache() {
100101
if ttl, err := time.ParseDuration(val); err == nil {
101102
cacheTtl = ttl
102103
} else {
103-
azureClient.logger.Fatalf(`%s is not a valid value, got "%v", expected duration`, EnvVarServiceDiscoveryTtl, val)
104+
panic(fmt.Errorf(`%s is not a valid value, got "%v", expected duration`, EnvVarServiceDiscoveryTtl, val))
104105
}
105106
}
106107
azureClient.SetCacheTtl(cacheTtl)
@@ -129,7 +130,7 @@ func (azureClient *ArmClient) initServiceDiscovery() {
129130
if val := os.Getenv(EnvVarServiceDiscoverySubscriptionTagSelector); val != "" {
130131
selector, err := labels.Parse(val)
131132
if err != nil {
132-
azureClient.logger.Panic(err)
133+
panic(err)
133134
}
134135
azureClient.serviceDiscovery.subscriptionTagSelector = &selector
135136
}
@@ -139,11 +140,11 @@ func (azureClient *ArmClient) initServiceDiscovery() {
139140
func (azureClient *ArmClient) LazyConnect() error {
140141
ctx := context.Background()
141142

142-
azureClient.logger.Infof(
143-
`connecting to Azure Environment "%v" (AzureAD:%s ResourceManager:%s)`,
144-
azureClient.cloud.Name,
145-
azureClient.cloud.ActiveDirectoryAuthorityHost,
146-
azureClient.cloud.Services[cloud.ResourceManager].Endpoint,
143+
azureClient.logger.Info(
144+
`connecting to Azure`,
145+
slog.String("azureEnvironment", string(azureClient.cloud.Name)),
146+
slog.String("AzureAD", azureClient.cloud.ActiveDirectoryAuthorityHost),
147+
slog.String("ResourceManager", azureClient.cloud.Services[cloud.ResourceManager].Endpoint),
147148
)
148149

149150
// try to get token
@@ -154,7 +155,7 @@ func (azureClient *ArmClient) LazyConnect() error {
154155
}
155156

156157
if tokenInfo := commonAzidentity.ParseAccessToken(accessToken); tokenInfo != nil {
157-
azureClient.logger.With(zap.Any("client", tokenInfo.ToMap())).Infof(`using Azure client: %v`, tokenInfo.ToString())
158+
azureClient.logger.With(slog.Any("client", tokenInfo.ToMap())).Info(`using Azure client`, slog.String("token", tokenInfo.ToString()))
158159
} else {
159160
azureClient.logger.Warn(`unable to get Azure client information, cannot parse accesstoken`)
160161
}
@@ -176,9 +177,9 @@ func (azureClient *ArmClient) Connect() error {
176177
return err
177178
}
178179

179-
azureClient.logger.Infof(`found %v Azure Subscriptions`, len(subscriptionList))
180+
azureClient.logger.Info(fmt.Sprintf(`found %v Azure Subscriptions`, len(subscriptionList)))
180181
for subscriptionId, subscription := range subscriptionList {
181-
azureClient.logger.Debugf(`found Azure Subscription "%v" (%v)`, subscriptionId, to.String(subscription.DisplayName))
182+
azureClient.logger.Debug(fmt.Sprintf(`found Azure Subscription "%v" (%v)`, subscriptionId, to.String(subscription.DisplayName)))
182183
}
183184

184185
return nil

azuresdk/armclient/client.resourcegroups.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package armclient
33
import (
44
"context"
55
"fmt"
6+
"log/slog"
67

78
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
8-
"go.uber.org/zap"
99

1010
"github.com/webdevops/go-common/utils/to"
1111
)
@@ -18,12 +18,12 @@ const (
1818
// ListCachedResourceGroups return cached list of Azure ResourceGroups as map (key is name of ResourceGroup)
1919
func (azureClient *ArmClient) ListCachedResourceGroups(ctx context.Context, subscriptionID string) (map[string]*armresources.ResourceGroup, error) {
2020
result, err := azureClient.cacheData(fmt.Sprintf(CacheIdentifierResourceGroupList, subscriptionID), func() (interface{}, error) {
21-
azureClient.logger.With(zap.String("subscriptionID", subscriptionID)).Debug("updating cached Azure ResourceGroup list")
21+
azureClient.logger.With(slog.String("subscriptionID", subscriptionID)).Debug("updating cached Azure ResourceGroup list")
2222
list, err := azureClient.ListResourceGroups(ctx, subscriptionID)
2323
if err != nil {
2424
return list, err
2525
}
26-
azureClient.logger.With(zap.String("subscriptionID", subscriptionID)).Debugf("found %v Azure ResourceGroups", len(list))
26+
azureClient.logger.With(slog.String("subscriptionID", subscriptionID)).Debug(fmt.Sprintf("found %v Azure ResourceGroups", len(list)))
2727
return list, nil
2828
})
2929
if err != nil {

azuresdk/armclient/client.resourceproviders.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package armclient
33
import (
44
"context"
55
"fmt"
6+
"log/slog"
67
"strings"
78

89
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
9-
"go.uber.org/zap"
1010

1111
"github.com/webdevops/go-common/utils/to"
1212
)
@@ -50,12 +50,12 @@ func (azureClient *ArmClient) IsResourceProviderRegistered(ctx context.Context,
5050
// ListCachedResourceProviders return cached list of Azure Resource Providers as map (key is namespace)
5151
func (azureClient *ArmClient) ListCachedResourceProviders(ctx context.Context, subscriptionID string) (map[string]*armresources.Provider, error) {
5252
result, err := azureClient.cacheData(fmt.Sprintf(CacheIdentifierResourceProviders, subscriptionID), func() (interface{}, error) {
53-
azureClient.logger.With(zap.String("subscriptionID", subscriptionID)).Debug("updating cached Azure ResourceProviders list")
53+
azureClient.logger.With(slog.String("subscriptionID", subscriptionID)).Debug("updating cached Azure ResourceProviders list")
5454
list, err := azureClient.ListResourceProviders(ctx, subscriptionID)
5555
if err != nil {
5656
return nil, err
5757
}
58-
azureClient.logger.With(zap.String(`subscriptionID`, subscriptionID)).Debugf("found %v Azure ResourceProviders", len(list))
58+
azureClient.logger.With(slog.String(`subscriptionID`, subscriptionID)).Debug(fmt.Sprintf("found %v Azure ResourceProviders", len(list)))
5959
return list, nil
6060
})
6161
if err != nil {

azuresdk/armclient/client.resources.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package armclient
33
import (
44
"context"
55
"fmt"
6+
"log/slog"
67
"strings"
78

89
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
9-
"go.uber.org/zap"
1010

1111
"github.com/webdevops/go-common/utils/to"
1212
)
@@ -49,12 +49,12 @@ func (azureClient *ArmClient) GetCachedResource(ctx context.Context, resourceID
4949
// ListCachedResources return cached list of Azure Resources as map (key is ResourceID)
5050
func (azureClient *ArmClient) ListCachedResources(ctx context.Context, subscriptionID string) (map[string]*armresources.GenericResourceExpanded, error) {
5151
result, err := azureClient.cacheData(fmt.Sprintf(CacheIdentifierResourcesList, subscriptionID), func() (interface{}, error) {
52-
azureClient.logger.With(zap.String(`subscriptionID`, subscriptionID)).Debug("updating cached Azure Resource list")
52+
azureClient.logger.With(slog.String(`subscriptionID`, subscriptionID)).Debug("updating cached Azure Resource list")
5353
list, err := azureClient.ListResources(ctx, subscriptionID)
5454
if err != nil {
5555
return list, err
5656
}
57-
azureClient.logger.With(zap.String(`subscriptionID`, subscriptionID)).Debugf("found %v Azure Resources", len(list))
57+
azureClient.logger.With(slog.String(`subscriptionID`, subscriptionID)).Debug(fmt.Sprintf("found %v Azure Resources", len(list)))
5858
return list, nil
5959
})
6060
if err != nil {

azuresdk/armclient/client.subscriptions.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (azureClient *ArmClient) ListCachedSubscriptions(ctx context.Context) (map[
4747
if err != nil {
4848
return nil, err
4949
}
50-
azureClient.logger.Debugf("found %v Azure Subscriptions", len(list))
50+
azureClient.logger.Debug(fmt.Sprintf("found %v Azure Subscriptions", len(list)))
5151
return list, nil
5252
})
5353
if err != nil {

azuresdk/armclient/client.tags.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ package armclient
33
import (
44
"context"
55
"fmt"
6+
"log/slog"
67
"net/url"
78
"regexp"
89
"strings"
910

1011
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources"
1112
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions"
1213
"github.com/prometheus/client_golang/prometheus"
13-
"go.uber.org/zap"
1414

1515
"github.com/webdevops/go-common/utils/to"
1616
)
@@ -32,7 +32,7 @@ const (
3232
type (
3333
ArmClientTagManager struct {
3434
client *ArmClient
35-
logger *zap.SugaredLogger
35+
logger *slog.Logger
3636
}
3737
)
3838

@@ -181,7 +181,7 @@ func (tagmgr *ArmClientTagManager) GetResourceTag(ctx context.Context, resourceI
181181
result.TagValue = val
182182
result.Source = AzureTagSourceResource
183183
} else {
184-
tagmgr.logger.Debugf(`unable to fetch tagValue for resourceID "%s": %v`, resourceID, err.Error())
184+
tagmgr.logger.Debug(`unable to fetch tagValue`, slog.String("resourceID", resourceID), slog.String("error", err.Error()))
185185
result.TagValue = ""
186186
}
187187
}
@@ -191,7 +191,7 @@ func (tagmgr *ArmClientTagManager) GetResourceTag(ctx context.Context, resourceI
191191
result.TagValue = val
192192
result.Source = AzureTagSourceResourceGroup
193193
} else {
194-
tagmgr.logger.Debugf(`unable to fetch tagValue for resourceID "%s": %v`, resourceID, err.Error())
194+
tagmgr.logger.Debug(`unable to fetch tagValue`, slog.String("resourceID", resourceID), slog.String("error", err.Error()))
195195
result.TagValue = ""
196196
}
197197
}
@@ -201,7 +201,7 @@ func (tagmgr *ArmClientTagManager) GetResourceTag(ctx context.Context, resourceI
201201
result.TagValue = val
202202
result.Source = AzureTagSourceSubscription
203203
} else {
204-
tagmgr.logger.Debugf(`unable to fetch tagValue for resourceID "%s": %v`, resourceID, err.Error())
204+
tagmgr.logger.Debug(`unable to fetch tagValue`, slog.String("resourceID", resourceID), slog.String("error", err.Error()))
205205
result.TagValue = ""
206206
}
207207
}
@@ -216,7 +216,7 @@ func (tagmgr *ArmClientTagManager) GetResourceTag(ctx context.Context, resourceI
216216
result.TagValue = val
217217
result.Source = AzureTagSourceResourceGroup
218218
} else {
219-
tagmgr.logger.Debugf(`unable to fetch tagValue for resourceID "%s" (inherit from ResourceGroup): %v`, resourceID, err.Error())
219+
tagmgr.logger.Debug(`unable to fetch tagValue (inherit from ResourceGroup)`, slog.String("resourceID", resourceID), slog.String("error", err.Error()))
220220
result.TagValue = ""
221221
}
222222
}
@@ -229,7 +229,7 @@ func (tagmgr *ArmClientTagManager) GetResourceTag(ctx context.Context, resourceI
229229
result.TagValue = val
230230
result.Source = AzureTagSourceSubscription
231231
} else {
232-
tagmgr.logger.Debugf(`unable to fetch tagValue for resourceID "%s" (inherit from Subscription): %v`, resourceID, err.Error())
232+
tagmgr.logger.Debug(`unable to fetch tagValue (inherit from Subscription)`, slog.String("resourceID", resourceID), slog.String("error", err.Error()))
233233
result.TagValue = ""
234234
}
235235
}
@@ -301,7 +301,7 @@ func (tagmgr *ArmClientTagManager) ParseTagConfigWithCustomPrefix(tags []string,
301301
for _, tag := range tags {
302302
tagConfig, err := tagmgr.parseTagConfig(tag, labelPrefix)
303303
if err != nil {
304-
tagmgr.logger.Panicf(`unable to parse tag config "%s": %v`, tag, err.Error())
304+
panic(fmt.Errorf(`unable to parse tag config "%s": %v`, tag, err.Error()))
305305
}
306306
config.Tags[i] = tagConfig
307307
i++
@@ -389,7 +389,7 @@ func (c *ResourceTagManager) AddResourceTagsToPrometheusLabels(ctx context.Conte
389389
if resourceID != "" {
390390
resourceTags, err := c.client.TagManager.GetResourceTag(ctx, resourceID, c)
391391
if err != nil {
392-
c.client.TagManager.logger.Warnf(`unable to fetch resource tags for resource "%s": %v`, resourceID, err.Error())
392+
c.client.TagManager.logger.Warn(`unable to fetch resource tags for resource`, slog.String("resourceID", resourceID), slog.String("error", err.Error()))
393393
}
394394

395395
for _, tag := range resourceTags {

azuresdk/armclient/iterator.subscriptions.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ package armclient
33
import (
44
"context"
55
"fmt"
6+
"log/slog"
67
"runtime/debug"
78
"strings"
89
"sync"
910

1011
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions"
1112
"github.com/remeh/sizedwaitgroup"
12-
"go.uber.org/zap"
1313
)
1414

1515
type (
@@ -51,16 +51,16 @@ func (i *SubscriptionsIterator) SetConcurrency(concurrency int) *SubscriptionsIt
5151
}
5252

5353
// ForEach Loop for each Azure Subscription without concurrency
54-
func (i *SubscriptionsIterator) ForEach(logger *zap.SugaredLogger, callback func(subscription *armsubscriptions.Subscription, logger *zap.SugaredLogger)) error {
54+
func (i *SubscriptionsIterator) ForEach(logger *slog.Logger, callback func(subscription *armsubscriptions.Subscription, logger *slog.Logger)) error {
5555
subscriptionList, err := i.ListSubscriptions()
5656
if err != nil {
5757
return err
5858
}
5959

6060
for _, subscription := range subscriptionList {
6161
contextLogger := logger.With(
62-
zap.String(`subscriptionID`, *subscription.SubscriptionID),
63-
zap.String(`subscriptionName`, *subscription.DisplayName),
62+
slog.String(`subscriptionID`, *subscription.SubscriptionID),
63+
slog.String(`subscriptionName`, *subscription.DisplayName),
6464
)
6565
callback(subscription, contextLogger)
6666
}
@@ -69,7 +69,7 @@ func (i *SubscriptionsIterator) ForEach(logger *zap.SugaredLogger, callback func
6969
}
7070

7171
// ForEachAsync Loop for each Azure Subscription with concurrency as background gofunc
72-
func (i *SubscriptionsIterator) ForEachAsync(logger *zap.SugaredLogger, callback func(subscription *armsubscriptions.Subscription, logger *zap.SugaredLogger)) error {
72+
func (i *SubscriptionsIterator) ForEachAsync(logger *slog.Logger, callback func(subscription *armsubscriptions.Subscription, logger *slog.Logger)) error {
7373
var panicList = []string{}
7474
panicLock := sync.Mutex{}
7575
wg := sizedwaitgroup.New(i.concurrency)
@@ -85,8 +85,8 @@ func (i *SubscriptionsIterator) ForEachAsync(logger *zap.SugaredLogger, callback
8585
go func(subscription *armsubscriptions.Subscription) {
8686
defer wg.Done()
8787
contextLogger := logger.With(
88-
zap.String(`subscriptionID`, *subscription.SubscriptionID),
89-
zap.String(`subscriptionName`, *subscription.DisplayName),
88+
slog.String(`subscriptionID`, *subscription.SubscriptionID),
89+
slog.String(`subscriptionName`, *subscription.DisplayName),
9090
)
9191

9292
finished := false
@@ -104,7 +104,7 @@ func (i *SubscriptionsIterator) ForEachAsync(logger *zap.SugaredLogger, callback
104104
msg = fmt.Sprintf("panic: %s\n%s", v, debug.Stack())
105105
}
106106

107-
contextLogger.Errorf(msg)
107+
contextLogger.Error(msg)
108108
panicList = append(panicList, msg)
109109
}
110110
}

azuresdk/cloudconfig/cloudconfig.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func NewCloudConfig(cloudName string) (config CloudEnvironment, err error) {
2727
Name: AzurePublicCloud,
2828
Configuration: cloud.AzurePublic,
2929
}, nil
30-
config.Configuration.Services = maps.Clone(config.Configuration.Services)
30+
config.Services = maps.Clone(config.Services)
3131
injectServiceConfig(&config.Configuration, ServiceNameMicrosoftGraph, cloud.ServiceConfiguration{
3232
Audience: "https://graph.microsoft.com/",
3333
Endpoint: "https://graph.microsoft.com",
@@ -44,7 +44,7 @@ func NewCloudConfig(cloudName string) (config CloudEnvironment, err error) {
4444
Name: AzureChinaCloud,
4545
Configuration: cloud.AzureChina,
4646
}, nil
47-
config.Configuration.Services = maps.Clone(config.Configuration.Services)
47+
config.Services = maps.Clone(config.Services)
4848
injectServiceConfig(&config.Configuration, ServiceNameMicrosoftGraph, cloud.ServiceConfiguration{
4949
Audience: "https://microsoftgraph.chinacloudapi.cn/",
5050
Endpoint: "https://microsoftgraph.chinacloudapi.cn",
@@ -61,7 +61,7 @@ func NewCloudConfig(cloudName string) (config CloudEnvironment, err error) {
6161
Name: AzureGovernmentCloud,
6262
Configuration: cloud.AzureGovernment,
6363
}, nil
64-
config.Configuration.Services = maps.Clone(config.Configuration.Services)
64+
config.Services = maps.Clone(config.Services)
6565
injectServiceConfig(&config.Configuration, ServiceNameMicrosoftGraph, cloud.ServiceConfiguration{
6666
Audience: "https://login.microsoftonline.us/",
6767
Endpoint: "https://login.microsoftonline.us",

0 commit comments

Comments
 (0)