Skip to content

Commit c169698

Browse files
authored
feat: remove usage of zerolog.Logger.Msgf() from zot code (#1382)
Signed-off-by: Nicol Draghici <idraghic@cisco.com>
1 parent 40bf76a commit c169698

29 files changed

Lines changed: 354 additions & 294 deletions

File tree

pkg/api/controller.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,8 @@ func (c *Controller) InitImageStore(ctx context.Context) error {
297297
} else {
298298
storeName := fmt.Sprintf("%v", c.Config.Storage.StorageDriver["name"])
299299
if storeName != storage.S3StorageDriverName {
300-
c.Log.Fatal().Err(errors.ErrBadConfig).Msgf("unsupported storage driver: %s",
301-
c.Config.Storage.StorageDriver["name"])
300+
c.Log.Fatal().Err(errors.ErrBadConfig).Str("storageDriver", storeName).
301+
Msg("unsupported storage driver")
302302
}
303303
// Init a Storager from connection string.
304304
store, err := factory.Create(storeName, c.Config.Storage.StorageDriver)
@@ -405,7 +405,8 @@ func (c *Controller) getSubStore(subPaths map[string]config.StorageConfig,
405405
} else {
406406
storeName := fmt.Sprintf("%v", storageConfig.StorageDriver["name"])
407407
if storeName != storage.S3StorageDriverName {
408-
c.Log.Fatal().Err(errors.ErrBadConfig).Msgf("unsupported storage driver: %s", storageConfig.StorageDriver["name"])
408+
c.Log.Fatal().Err(errors.ErrBadConfig).Str("storageDriver", storeName).
409+
Msg("unsupported storage driver")
409410
}
410411

411412
// Init a Storager from connection string.

pkg/api/routes.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ func (rh *RouteHandler) GetManifest(response http.ResponseWriter, request *http.
411411
err := meta.OnGetManifest(name, reference, digest, content, rh.c.StoreController, rh.c.RepoDB, rh.c.Log)
412412

413413
if errors.Is(err, zerr.ErrOrphanSignature) {
414-
rh.c.Log.Error().Err(err).Msgf("image is an orphan signature")
414+
rh.c.Log.Error().Err(err).Msg("image is an orphan signature")
415415
} else if err != nil {
416416
response.WriteHeader(http.StatusInternalServerError)
417417

@@ -438,8 +438,8 @@ func getReferrers(ctx context.Context, routeHandler *RouteHandler,
438438
if routeHandler.c.Config.Extensions != nil &&
439439
routeHandler.c.Config.Extensions.Sync != nil &&
440440
*routeHandler.c.Config.Extensions.Sync.Enable {
441-
routeHandler.c.Log.Info().Msgf("referrers not found, trying to get referrers to %s:%s by syncing on demand",
442-
name, digest)
441+
routeHandler.c.Log.Info().Str("repository", name).Str("reference", digest.String()).
442+
Msg("referrers not found, trying to get reference by syncing on demand")
443443

444444
errSync := ext.SyncOneImage(ctx, routeHandler.c.Config, routeHandler.c.RepoDB, routeHandler.c.StoreController,
445445
name, digest.String(), sync.OCIReference, routeHandler.c.Log)
@@ -598,7 +598,8 @@ func (rh *RouteHandler) UpdateManifest(response http.ResponseWriter, request *ht
598598
// deletion of image manifest is important, but not critical for image repo consistancy
599599
// in the worst scenario a partial manifest file written to disk will not affect the repo because
600600
// the new manifest was not added to "index.json" file (it is possible that GC will take care of it)
601-
rh.c.Log.Error().Err(err).Msgf("couldn't remove image manifest %s in repo %s", reference, name)
601+
rh.c.Log.Error().Err(err).Str("repository", name).Str("reference", reference).
602+
Msg("couldn't remove image manifest in repo")
602603
}
603604

604605
response.WriteHeader(http.StatusInternalServerError)
@@ -611,7 +612,7 @@ func (rh *RouteHandler) UpdateManifest(response http.ResponseWriter, request *ht
611612
err := meta.OnUpdateManifest(name, reference, mediaType, digest, body, rh.c.StoreController, rh.c.RepoDB,
612613
rh.c.Log)
613614
if errors.Is(err, zerr.ErrOrphanSignature) {
614-
rh.c.Log.Error().Err(err).Msgf("pushed image is an orphan signature")
615+
rh.c.Log.Error().Err(err).Msg("pushed image is an orphan signature")
615616
} else if err != nil {
616617
response.WriteHeader(http.StatusInternalServerError)
617618

@@ -710,7 +711,7 @@ func (rh *RouteHandler) DeleteManifest(response http.ResponseWriter, request *ht
710711
err := meta.OnDeleteManifest(name, reference, mediaType, manifestDigest, manifestBlob,
711712
rh.c.StoreController, rh.c.RepoDB, rh.c.Log)
712713
if errors.Is(err, zerr.ErrOrphanSignature) {
713-
rh.c.Log.Error().Err(err).Msgf("pushed image is an orphan signature")
714+
rh.c.Log.Error().Err(err).Msg("pushed image is an orphan signature")
714715
} else if err != nil {
715716
response.WriteHeader(http.StatusInternalServerError)
716717

@@ -1274,7 +1275,8 @@ func (rh *RouteHandler) PatchBlobUpload(response http.ResponseWriter, request *h
12741275
rh.c.Log.Error().Err(err).Msg("unexpected error: removing .uploads/ files")
12751276

12761277
if err = imgStore.DeleteBlobUpload(name, sessionID); err != nil {
1277-
rh.c.Log.Error().Err(err).Msgf("couldn't remove blobUpload %s in repo %s", sessionID, name)
1278+
rh.c.Log.Error().Err(err).Str("blobUpload", sessionID).Str("repository", name).
1279+
Msg("couldn't remove blobUpload in repo")
12781280
}
12791281
response.WriteHeader(http.StatusInternalServerError)
12801282
}
@@ -1393,7 +1395,8 @@ func (rh *RouteHandler) UpdateBlobUpload(response http.ResponseWriter, request *
13931395
rh.c.Log.Error().Err(err).Msg("unexpected error: removing .uploads/ files")
13941396

13951397
if err = imgStore.DeleteBlobUpload(name, sessionID); err != nil {
1396-
rh.c.Log.Error().Err(err).Msgf("couldn't remove blobUpload %s in repo %s", sessionID, name)
1398+
rh.c.Log.Error().Err(err).Str("blobUpload", sessionID).Str("repository", name).
1399+
Msg("couldn't remove blobUpload in repo")
13971400
}
13981401
response.WriteHeader(http.StatusInternalServerError)
13991402
}
@@ -1422,7 +1425,8 @@ finish:
14221425
rh.c.Log.Error().Err(err).Msg("unexpected error: removing .uploads/ files")
14231426

14241427
if err = imgStore.DeleteBlobUpload(name, sessionID); err != nil {
1425-
rh.c.Log.Error().Err(err).Msgf("couldn't remove blobUpload %s in repo %s", sessionID, name)
1428+
rh.c.Log.Error().Err(err).Str("blobUpload", sessionID).Str("repository", name).
1429+
Msg("couldn't remove blobUpload in repo")
14261430
}
14271431
response.WriteHeader(http.StatusInternalServerError)
14281432
}
@@ -1654,14 +1658,14 @@ func getImageManifest(ctx context.Context, routeHandler *RouteHandler, imgStore
16541658
}
16551659

16561660
if syncEnabled {
1657-
routeHandler.c.Log.Info().Msgf("trying to get updated image %s:%s by syncing on demand",
1658-
name, reference)
1661+
routeHandler.c.Log.Info().Str("repository", name).Str("reference", reference).
1662+
Msg("trying to get updated image by syncing on demand")
16591663

16601664
errSync := ext.SyncOneImage(ctx, routeHandler.c.Config, routeHandler.c.RepoDB, routeHandler.c.StoreController,
16611665
name, reference, "", routeHandler.c.Log)
16621666
if errSync != nil {
1663-
routeHandler.c.Log.Err(errSync).Msgf("error encounter while syncing image %s:%s",
1664-
name, reference)
1667+
routeHandler.c.Log.Err(errSync).Str("repository", name).Str("reference", reference).
1668+
Msg("error encounter while syncing image")
16651669
}
16661670
}
16671671

@@ -1678,8 +1682,8 @@ func getOrasReferrers(ctx context.Context, routeHandler *RouteHandler,
16781682
if routeHandler.c.Config.Extensions != nil &&
16791683
routeHandler.c.Config.Extensions.Sync != nil &&
16801684
*routeHandler.c.Config.Extensions.Sync.Enable {
1681-
routeHandler.c.Log.Info().Msgf("artifact not found, trying to get artifact %s:%s by syncing on demand",
1682-
name, digest.String())
1685+
routeHandler.c.Log.Info().Str("repository", name).Str("reference", digest.String()).
1686+
Msg("artifact not found, trying to get artifact by syncing on demand")
16831687

16841688
errSync := ext.SyncOneImage(ctx, routeHandler.c.Config, routeHandler.c.RepoDB, routeHandler.c.StoreController,
16851689
name, digest.String(), sync.OrasArtifact, routeHandler.c.Log)

pkg/cli/config_reloader.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ func (hr *HotReloader) Start() context.Context {
6565
}
6666
// watch for errors
6767
case err := <-hr.watcher.Errors:
68-
log.Error().Err(err).Msgf("fsnotfy error while watching config %s", hr.filePath)
68+
log.Error().Err(err).Str("config", hr.filePath).Msg("fsnotfy error while watching config")
6969
panic(err)
7070
}
7171
}
7272
}()
7373

7474
if err := hr.watcher.Add(hr.filePath); err != nil {
75-
log.Error().Err(err).Msgf("error adding config file %s to FsNotify watcher", hr.filePath)
75+
log.Error().Err(err).Str("config", hr.filePath).Msg("error adding config file to FsNotify watcher")
7676
panic(err)
7777
}
7878

pkg/cli/root.go

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ func newVerifyCmd(conf *config.Config) *cobra.Command {
143143
Run: func(cmd *cobra.Command, args []string) {
144144
if len(args) > 0 {
145145
if err := LoadConfiguration(conf, args[0]); err != nil {
146-
log.Error().Msgf("Config file %s is invalid", args[0])
146+
log.Error().Str("config", args[0]).Msg("Config file is invalid")
147147
panic(err)
148148
}
149149

150-
log.Info().Msgf("Config file %s is valid", args[0])
150+
log.Info().Str("config", args[0]).Msg("Config file is valid")
151151
}
152152
},
153153
}
@@ -263,16 +263,17 @@ func validateCacheConfig(cfg *config.Config) error {
263263

264264
// unsupported cache driver
265265
if cfg.Storage.CacheDriver["name"] != storageConstants.DynamoDBDriverName {
266-
log.Error().Err(errors.ErrBadConfig).Msgf("unsupported cache driver: %s", cfg.Storage.CacheDriver["name"])
266+
log.Error().Err(errors.ErrBadConfig).
267+
Interface("cacheDriver", cfg.Storage.CacheDriver["name"]).Msg("unsupported cache driver")
267268

268269
return errors.ErrBadConfig
269270
}
270271
}
271272

272273
if !cfg.Storage.RemoteCache && cfg.Storage.CacheDriver != nil {
273-
log.Warn().Err(errors.ErrBadConfig).Msgf(
274-
"remoteCache set to false but cacheDriver config (remote caching) provided for %s,"+
275-
"will ignore and use local caching", cfg.Storage.RootDirectory)
274+
log.Warn().Err(errors.ErrBadConfig).Str("directory", cfg.Storage.RootDirectory).
275+
Msg("remoteCache set to false but cacheDriver config (remote caching) provided for directory" +
276+
"will ignore and use local caching")
276277
}
277278

278279
// subpaths
@@ -295,16 +296,17 @@ func validateCacheConfig(cfg *config.Config) error {
295296

296297
// unsupported cache driver
297298
if subPath.CacheDriver["name"] != storageConstants.DynamoDBDriverName {
298-
log.Error().Err(errors.ErrBadConfig).Msgf("unsupported cache driver: %s", subPath.CacheDriver["name"])
299+
log.Error().Err(errors.ErrBadConfig).Interface("cacheDriver", cfg.Storage.CacheDriver["name"]).
300+
Msg("unsupported cache driver")
299301

300302
return errors.ErrBadConfig
301303
}
302304
}
303305

304306
if !subPath.RemoteCache && subPath.CacheDriver != nil {
305-
log.Warn().Err(errors.ErrBadConfig).Msgf(
306-
"remoteCache set to false but cacheDriver config (remote caching) provided for %s,"+
307-
"will ignore and use local caching", subPath.RootDirectory)
307+
log.Warn().Err(errors.ErrBadConfig).Str("directory", cfg.Storage.RootDirectory).
308+
Msg("remoteCache set to false but cacheDriver config (remote caching) provided for directory," +
309+
"will ignore and use local caching")
308310
}
309311
}
310312

@@ -373,7 +375,8 @@ func validateConfiguration(config *config.Config) error {
373375
if len(config.Storage.StorageDriver) != 0 {
374376
// enforce s3 driver in case of using storage driver
375377
if config.Storage.StorageDriver["name"] != storage.S3StorageDriverName {
376-
log.Error().Err(errors.ErrBadConfig).Msgf("unsupported storage driver: %s", config.Storage.StorageDriver["name"])
378+
log.Error().Err(errors.ErrBadConfig).Interface("cacheDriver", config.Storage.StorageDriver["name"]).
379+
Msg("unsupported storage driver")
377380

378381
return errors.ErrBadConfig
379382
}
@@ -394,8 +397,8 @@ func validateConfiguration(config *config.Config) error {
394397
for route, storageConfig := range subPaths {
395398
if len(storageConfig.StorageDriver) != 0 {
396399
if storageConfig.StorageDriver["name"] != storage.S3StorageDriverName {
397-
log.Error().Err(errors.ErrBadConfig).Str("subpath",
398-
route).Msgf("unsupported storage driver: %s", storageConfig.StorageDriver["name"])
400+
log.Error().Err(errors.ErrBadConfig).Str("subpath", route).Interface("storageDriver",
401+
storageConfig.StorageDriver["name"]).Msg("unsupported storage driver")
399402

400403
return errors.ErrBadConfig
401404
}
@@ -577,9 +580,8 @@ func updateDistSpecVersion(config *config.Config) {
577580
return
578581
}
579582

580-
log.Warn().
581-
Msgf("config dist-spec version: %s differs from version actually used: %s",
582-
config.DistSpecVersion, distspec.Version)
583+
log.Warn().Str("config version", config.DistSpecVersion).Str("supported version", distspec.Version).
584+
Msg("config dist-spec version differs from version actually used")
583585

584586
config.DistSpecVersion = distspec.Version
585587
}
@@ -605,13 +607,13 @@ func LoadConfiguration(config *config.Config, configPath string) error {
605607
}
606608

607609
if len(metaData.Keys) == 0 {
608-
log.Error().Err(errors.ErrBadConfig).Msgf("config doesn't contain any key:value pair")
610+
log.Error().Err(errors.ErrBadConfig).Msg("config doesn't contain any key:value pair")
609611

610612
return errors.ErrBadConfig
611613
}
612614

613615
if len(metaData.Unused) > 0 {
614-
log.Error().Err(errors.ErrBadConfig).Msgf("unknown keys: %v", metaData.Unused)
616+
log.Error().Err(errors.ErrBadConfig).Strs("keys", metaData.Unused).Msg("unknown keys")
615617

616618
return errors.ErrBadConfig
617619
}
@@ -707,8 +709,6 @@ func validateHTTP(config *config.Config) error {
707709

708710
return errors.ErrBadConfig
709711
}
710-
711-
log.Info().Msgf("HTTP port %d\n", port)
712712
}
713713

714714
return nil
@@ -717,15 +717,15 @@ func validateHTTP(config *config.Config) error {
717717
func validateGC(config *config.Config) error {
718718
// enforce GC params
719719
if config.Storage.GCDelay < 0 {
720-
log.Error().Err(errors.ErrBadConfig).
721-
Msgf("invalid garbage-collect delay %v specified", config.Storage.GCDelay)
720+
log.Error().Err(errors.ErrBadConfig).Dur("delay", config.Storage.GCDelay).
721+
Msg("invalid garbage-collect delay specified")
722722

723723
return errors.ErrBadConfig
724724
}
725725

726726
if config.Storage.GCInterval < 0 {
727-
log.Error().Err(errors.ErrBadConfig).
728-
Msgf("invalid garbage-collect interval %v specified", config.Storage.GCInterval)
727+
log.Error().Err(errors.ErrBadConfig).Dur("interval", config.Storage.GCInterval).
728+
Msg("invalid garbage-collect interval specified")
729729

730730
return errors.ErrBadConfig
731731
}
@@ -763,8 +763,8 @@ func validateSync(config *config.Config) error {
763763
for id, regCfg := range config.Extensions.Sync.Registries {
764764
// check retry options are configured for sync
765765
if regCfg.MaxRetries != nil && regCfg.RetryDelay == nil {
766-
log.Error().Err(errors.ErrBadConfig).Msgf("extensions.sync.registries[%d].retryDelay"+
767-
" is required when using extensions.sync.registries[%d].maxRetries", id, id)
766+
log.Error().Err(errors.ErrBadConfig).Int("id", id).Interface("extensions.sync.registries[id]",
767+
config.Extensions.Sync.Registries[id]).Msg("retryDelay is required when using maxRetries")
768768

769769
return errors.ErrBadConfig
770770
}

pkg/common/common.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,23 +182,24 @@ func MakeHTTPGetRequest(httpClient *http.Client, username string, password strin
182182
resp, err := httpClient.Do(req)
183183
if err != nil {
184184
log.Error().Str("errorType", TypeOf(err)).
185-
Err(err).Msgf("couldn't get blob: %s", blobURL)
185+
Err(err).Str("blobURL", blobURL).Msg("couldn't get blob")
186186

187187
return nil, -1, err
188188
}
189189

190190
body, err := io.ReadAll(resp.Body)
191191
if err != nil {
192192
log.Error().Str("errorType", TypeOf(err)).
193-
Err(err).Msgf("couldn't get blob: %s", blobURL)
193+
Err(err).Str("blobURL", blobURL).Msg("couldn't get blob")
194194

195195
return nil, resp.StatusCode, err
196196
}
197197

198198
defer resp.Body.Close()
199199

200200
if resp.StatusCode != http.StatusOK {
201-
log.Error().Str("status code", fmt.Sprint(resp.StatusCode)).Err(err).Msgf("couldn't get blob: %s", blobURL)
201+
log.Error().Str("status code", fmt.Sprint(resp.StatusCode)).
202+
Err(err).Str("blobURL", blobURL).Msg("couldn't get blob")
202203

203204
return nil, resp.StatusCode, errors.New(string(body)) //nolint:goerr113
204205
}
@@ -208,7 +209,7 @@ func MakeHTTPGetRequest(httpClient *http.Client, username string, password strin
208209
err = json.Unmarshal(body, &resultPtr)
209210
if err != nil {
210211
log.Error().Str("errorType", TypeOf(err)).
211-
Err(err).Msgf("couldn't unmarshal blob: %s", blobURL)
212+
Err(err).Str("blobURL", blobURL).Msg("couldn't unmarshal blob")
212213

213214
return body, resp.StatusCode, err
214215
}

pkg/exporter/api/exporter.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,12 @@ func runExporter(c *Controller) {
184184
}
185185

186186
http.Handle(c.Config.Exporter.Metrics.Path, promhttp.Handler())
187-
c.Log.Info().Msgf("Exporter is listening on %s & exposes metrics on %s path",
188-
exporterAddr, c.Config.Exporter.Metrics.Path)
187+
c.Log.Info().Str("exporter addr", exporterAddr).
188+
Str("exporter metrics path", c.Config.Exporter.Metrics.Path).
189+
Msg("Exporter is listening on exporter addr & exposes metrics on exporter metrics path")
189190

190191
serverAddr := fmt.Sprintf("%s://%s:%s", c.Config.Server.Protocol,
191192
c.Config.Server.Host, c.Config.Server.Port)
192-
c.Log.Info().Msgf("Scraping metrics from %s", serverAddr)
193+
c.Log.Info().Str("serverAddr", serverAddr).Msg("Scraping metrics")
193194
c.Log.Fatal().Err(server.ListenAndServe()).Msg("Exporter stopped")
194195
}

pkg/extensions/extension_sync.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func EnableSyncExtension(ctx context.Context, config *config.Config,
2828
func SyncOneImage(ctx context.Context, config *config.Config, repoDB repodb.RepoDB,
2929
storeController storage.StoreController, repoName, reference string, artifactType string, log log.Logger,
3030
) error {
31-
log.Info().Msgf("syncing image %s:%s", repoName, reference)
31+
log.Info().Str("repository", repoName).Str("reference", reference).Msg("syncing image")
3232

3333
err := sync.OneImage(ctx, *config.Extensions.Sync, repoDB, storeController, repoName, reference, artifactType, log)
3434

pkg/extensions/monitoring/minimal.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ func (ms *metricServer) Run() {
158158
case bool:
159159
ms.reqChan <- ms.enabled
160160
default:
161-
ms.log.Error().Msgf("unexpected type %T", v)
161+
ms.log.Error().Str("type", fmt.Sprintf("%T", v)).Msg("unexpected type")
162162
}
163163
case <-sendAfter:
164164
// Check if we didn't receive a metrics scrape in a while and if so,

pkg/extensions/search/convert/repodb.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,8 @@ func RepoMeta2ExpandedRepoInfo(ctx context.Context, repoMeta repodb.RepoMetadata
599599
imageSummary, imageBlobs, err := Descriptor2ImageSummary(ctx, descriptor, repoName, tag,
600600
skip.Vulnerabilities, repoMeta, manifestMetaMap, indexDataMap, cveInfo)
601601
if err != nil {
602-
log.Error().Msgf("repodb: erorr while converting descriptor for image '%s:%s'", repoName, tag)
602+
log.Error().Str("repository", repoName).Str("reference", tag).
603+
Msg("repodb: erorr while converting descriptor for image")
603604

604605
continue
605606
}

0 commit comments

Comments
 (0)