You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by al...@apache.org on 2025/07/07 09:36:06 UTC

(apisix-ingress-controller) branch v2.0.0 updated: chore: unified logger print (#2456)

This is an automated email from the ASF dual-hosted git repository.

alinsran pushed a commit to branch v2.0.0
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git


The following commit(s) were added to refs/heads/v2.0.0 by this push:
     new cdc6b386 chore: unified logger print (#2456)
cdc6b386 is described below

commit cdc6b38615a41570bd1a13feff453155a5dc90c5
Author: Ashing Zheng <ax...@gmail.com>
AuthorDate: Sat Jul 5 22:21:24 2025 +0800

    chore: unified logger print (#2456)
    
    Signed-off-by: ashing <ax...@gmail.com>
    Co-authored-by: Copilot <17...@users.noreply.github.com>
---
 internal/controller/apisixglobalrule_controller.go |  7 +++----
 internal/controller/apisixtls_controller.go        |  9 ++++----
 internal/controller/consumer_controller.go         |  2 +-
 internal/controller/gateway_controller.go          |  7 +++----
 internal/controller/httproute_controller.go        |  2 +-
 internal/controller/ingress_controller.go          |  2 +-
 internal/controller/ingressclass_controller.go     |  3 +--
 internal/controller/utils.go                       | 24 +++++++++++-----------
 internal/provider/adc/adc.go                       |  2 +-
 internal/provider/adc/executor.go                  |  4 ++--
 internal/provider/adc/store.go                     | 18 ++++++++--------
 internal/provider/adc/translator/apisixroute.go    |  3 ++-
 internal/provider/adc/translator/gateway.go        |  3 ++-
 internal/provider/adc/translator/httproute.go      |  3 ++-
 test/e2e/scaffold/adc.go                           |  2 +-
 15 files changed, 45 insertions(+), 46 deletions(-)

diff --git a/internal/controller/apisixglobalrule_controller.go b/internal/controller/apisixglobalrule_controller.go
index 70ee59d8..fc42b1fb 100644
--- a/internal/controller/apisixglobalrule_controller.go
+++ b/internal/controller/apisixglobalrule_controller.go
@@ -21,7 +21,6 @@ import (
 	"context"
 	"fmt"
 
-	"github.com/api7/gopkg/pkg/log"
 	"github.com/go-logr/logr"
 	networkingv1 "k8s.io/api/networking/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -83,19 +82,19 @@ func (r *ApisixGlobalRuleReconciler) Reconcile(ctx context.Context, req ctrl.Req
 	// get the ingress class
 	ingressClass, err := GetIngressClass(tctx, r.Client, r.Log, globalRule.Spec.IngressClassName)
 	if err != nil {
-		log.Error(err, "failed to get IngressClass")
+		r.Log.Error(err, "failed to get IngressClass")
 		return ctrl.Result{}, err
 	}
 
 	// process IngressClass parameters if they reference GatewayProxy
 	if err := ProcessIngressClassParameters(tctx, r.Client, r.Log, &globalRule, ingressClass); err != nil {
-		log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name)
+		r.Log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name)
 		return ctrl.Result{}, err
 	}
 
 	// Sync the global rule to APISIX
 	if err := r.Provider.Update(ctx, tctx, &globalRule); err != nil {
-		log.Error(err, "failed to sync global rule to provider")
+		r.Log.Error(err, "failed to sync global rule to provider")
 		// Update status with failure condition
 		r.updateStatus(&globalRule, metav1.Condition{
 			Type:               string(apiv2.ConditionTypeAccepted),
diff --git a/internal/controller/apisixtls_controller.go b/internal/controller/apisixtls_controller.go
index 020aebcd..5cde26f6 100644
--- a/internal/controller/apisixtls_controller.go
+++ b/internal/controller/apisixtls_controller.go
@@ -21,7 +21,6 @@ import (
 	"context"
 	"fmt"
 
-	"github.com/api7/gopkg/pkg/log"
 	"github.com/go-logr/logr"
 	corev1 "k8s.io/api/core/v1"
 	networkingv1 "k8s.io/api/networking/v1"
@@ -115,7 +114,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
 	// get the ingress class
 	ingressClass, err := GetIngressClass(tctx, r.Client, r.Log, tls.Spec.IngressClassName)
 	if err != nil {
-		log.Error(err, "failed to get IngressClass")
+		r.Log.Error(err, "failed to get IngressClass")
 		r.updateStatus(&tls, metav1.Condition{
 			Type:               string(apiv2.ConditionTypeAccepted),
 			Status:             metav1.ConditionFalse,
@@ -129,7 +128,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
 
 	// process IngressClass parameters if they reference GatewayProxy
 	if err := ProcessIngressClassParameters(tctx, r.Client, r.Log, &tls, ingressClass); err != nil {
-		log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name)
+		r.Log.Error(err, "failed to process IngressClass parameters", "ingressClass", ingressClass.Name)
 		r.updateStatus(&tls, metav1.Condition{
 			Type:               string(apiv2.ConditionTypeAccepted),
 			Status:             metav1.ConditionFalse,
@@ -143,7 +142,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
 
 	// process ApisixTls validation
 	if err := r.processApisixTls(ctx, tctx, &tls); err != nil {
-		log.Error(err, "failed to process ApisixTls")
+		r.Log.Error(err, "failed to process ApisixTls")
 		r.updateStatus(&tls, metav1.Condition{
 			Type:               string(apiv2.ConditionTypeAccepted),
 			Status:             metav1.ConditionFalse,
@@ -156,7 +155,7 @@ func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
 	}
 
 	if err := r.Provider.Update(ctx, tctx, &tls); err != nil {
-		log.Error(err, "failed to sync apisix tls to provider")
+		r.Log.Error(err, "failed to sync apisix tls to provider")
 		// Update status with failure condition
 		r.updateStatus(&tls, metav1.Condition{
 			Type:               string(apiv2.ConditionTypeAccepted),
diff --git a/internal/controller/consumer_controller.go b/internal/controller/consumer_controller.go
index 0484680c..ef02e42f 100644
--- a/internal/controller/consumer_controller.go
+++ b/internal/controller/consumer_controller.go
@@ -212,7 +212,7 @@ func (r *ConsumerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c
 
 	rk := utils.NamespacedNameKind(consumer)
 
-	if err := ProcessGatewayProxy(r.Client, tctx, gateway, rk); err != nil {
+	if err := ProcessGatewayProxy(r.Client, r.Log, tctx, gateway, rk); err != nil {
 		r.Log.Error(err, "failed to process gateway proxy", "gateway", gateway)
 		statusErr = err
 	}
diff --git a/internal/controller/gateway_controller.go b/internal/controller/gateway_controller.go
index 31a64824..2ed7bf46 100644
--- a/internal/controller/gateway_controller.go
+++ b/internal/controller/gateway_controller.go
@@ -23,7 +23,6 @@ import (
 	"fmt"
 	"reflect"
 
-	"github.com/api7/gopkg/pkg/log"
 	"github.com/go-logr/logr"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -412,7 +411,7 @@ func (r *GatewayReconciler) listReferenceGrantsForGateway(ctx context.Context, o
 }
 
 func (r *GatewayReconciler) processInfrastructure(tctx *provider.TranslateContext, gateway *gatewayv1.Gateway) error {
-	return ProcessGatewayProxy(r.Client, tctx, gateway, utils.NamespacedNameKind(gateway))
+	return ProcessGatewayProxy(r.Client, r.Log, tctx, gateway, utils.NamespacedNameKind(gateway))
 }
 
 func (r *GatewayReconciler) processListenerConfig(tctx *provider.TranslateContext, gateway *gatewayv1.Gateway) {
@@ -432,12 +431,12 @@ func (r *GatewayReconciler) processListenerConfig(tctx *provider.TranslateContex
 					Namespace: ns,
 					Name:      string(ref.Name),
 				}, &secret); err != nil {
-					log.Error(err, "failed to get secret", "namespace", ns, "name", ref.Name)
+					r.Log.Error(err, "failed to get secret", "namespace", ns, "name", ref.Name)
 					SetGatewayListenerConditionProgrammed(gateway, string(listener.Name), false, err.Error())
 					SetGatewayListenerConditionResolvedRefs(gateway, string(listener.Name), false, err.Error())
 					break
 				}
-				log.Info("Setting secret for listener", "listener", listener.Name, "secret", secret.Name, " namespace", ns)
+				r.Log.Info("Setting secret for listener", "listener", listener.Name, "secret", secret.Name, " namespace", ns)
 				tctx.Secrets[types.NamespacedName{Namespace: ns, Name: string(ref.Name)}] = &secret
 			}
 		}
diff --git a/internal/controller/httproute_controller.go b/internal/controller/httproute_controller.go
index ae869761..3a21e6a2 100644
--- a/internal/controller/httproute_controller.go
+++ b/internal/controller/httproute_controller.go
@@ -178,7 +178,7 @@ func (r *HTTPRouteReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
 	tctx.RouteParentRefs = hr.Spec.ParentRefs
 	rk := utils.NamespacedNameKind(hr)
 	for _, gateway := range gateways {
-		if err := ProcessGatewayProxy(r.Client, tctx, gateway.Gateway, rk); err != nil {
+		if err := ProcessGatewayProxy(r.Client, r.Log, tctx, gateway.Gateway, rk); err != nil {
 			acceptStatus.status = false
 			acceptStatus.msg = err.Error()
 		}
diff --git a/internal/controller/ingress_controller.go b/internal/controller/ingress_controller.go
index 001a9f9b..d2a55079 100644
--- a/internal/controller/ingress_controller.go
+++ b/internal/controller/ingress_controller.go
@@ -471,7 +471,7 @@ func (r *IngressReconciler) processTLS(tctx *provider.TranslateContext, ingress
 			Namespace: ingress.Namespace,
 			Name:      tls.SecretName,
 		}, &secret); err != nil {
-			log.Error(err, "failed to get secret", "namespace", ingress.Namespace, "name", tls.SecretName)
+			r.Log.Error(err, "failed to get secret", "namespace", ingress.Namespace, "name", tls.SecretName)
 			return err
 		}
 
diff --git a/internal/controller/ingressclass_controller.go b/internal/controller/ingressclass_controller.go
index f653dbbd..c0e88f2d 100644
--- a/internal/controller/ingressclass_controller.go
+++ b/internal/controller/ingressclass_controller.go
@@ -21,7 +21,6 @@ import (
 	"context"
 	"fmt"
 
-	"github.com/api7/gopkg/pkg/log"
 	"github.com/go-logr/logr"
 	corev1 "k8s.io/api/core/v1"
 	networkingv1 "k8s.io/api/networking/v1"
@@ -217,7 +216,7 @@ func (r *IngressClassReconciler) processInfrastructure(tctx *provider.TranslateC
 					Namespace: namespace,
 					Name:      secretRef.Name,
 				}, secret); err != nil {
-					log.Error(err, "failed to get secret for gateway proxy", "namespace", namespace, "name", secretRef.Name)
+					r.Log.Error(err, "failed to get secret for gateway proxy", "namespace", namespace, "name", secretRef.Name)
 					return err
 				}
 				tctx.Secrets[client.ObjectKey{
diff --git a/internal/controller/utils.go b/internal/controller/utils.go
index 0465f952..81a44843 100644
--- a/internal/controller/utils.go
+++ b/internal/controller/utils.go
@@ -380,8 +380,11 @@ func ParseRouteParentRefs(
 			listenerName = string(listener.Name)
 			ok, err := routeMatchesListenerAllowedRoutes(ctx, mgrc, route, listener.AllowedRoutes, gateway.Namespace, parentRef.Namespace)
 			if err != nil {
-				log.Warnf("failed matching listener %s to a route %s for gateway %s: %v",
-					listener.Name, route.GetName(), gateway.Name, err,
+				log.Warnw("failed matching listener to a route for gateway",
+					zap.String("listener", string(listener.Name)),
+					zap.String("route", route.GetName()),
+					zap.String("gateway", gateway.Name),
+					zap.Error(err),
 				)
 			}
 			if !ok {
@@ -895,7 +898,7 @@ func SplitMetaNamespaceKey(key string) (namespace, name string, err error) {
 	return "", "", fmt.Errorf("unexpected key format: %q", key)
 }
 
-func ProcessGatewayProxy(r client.Client, tctx *provider.TranslateContext, gateway *gatewayv1.Gateway, rk types.NamespacedNameKind) error {
+func ProcessGatewayProxy(r client.Client, log logr.Logger, tctx *provider.TranslateContext, gateway *gatewayv1.Gateway, rk types.NamespacedNameKind) error {
 	if gateway == nil {
 		return nil
 	}
@@ -914,10 +917,10 @@ func ProcessGatewayProxy(r client.Client, tctx *provider.TranslateContext, gatew
 			Namespace: ns,
 			Name:      paramRef.Name,
 		}, gatewayProxy); err != nil {
-			log.Errorw("failed to get GatewayProxy", zap.String("namespace", ns), zap.String("name", paramRef.Name), zap.Error(err))
+			log.Error(err, "failed to get GatewayProxy", "namespace", ns, "name", paramRef.Name)
 			return err
 		} else {
-			log.Infow("found GatewayProxy for Gateway", zap.String("namespace", gateway.Namespace), zap.String("name", gateway.Name))
+			log.Info("found GatewayProxy for Gateway", "namespace", gateway.Namespace, "name", gateway.Name)
 			tctx.GatewayProxies[gatewayKind] = *gatewayProxy
 			tctx.ResourceParentRefs[rk] = append(tctx.ResourceParentRefs[rk], gatewayKind)
 
@@ -941,10 +944,7 @@ func ProcessGatewayProxy(r client.Client, tctx *provider.TranslateContext, gatew
 							return err
 						}
 
-						log.Info("found secret for GatewayProxy provider",
-							"gateway", gateway.Name,
-							"gatewayproxy", gatewayProxy.Name,
-							"secret", secretRef.Name)
+						log.Info("found secret for GatewayProxy provider", "gateway", gateway.Name, "gatewayproxy", gatewayProxy.Name, "secret", secretRef.Name)
 
 						tctx.Secrets[k8stypes.NamespacedName{
 							Namespace: ns,
@@ -1415,12 +1415,12 @@ func distinctRequests(requests []reconcile.Request) []reconcile.Request {
 }
 
 func addProviderEndpointsToTranslateContext(tctx *provider.TranslateContext, c client.Client, serviceNN k8stypes.NamespacedName) error {
-	log.Debugf("to process provider endpints by provider.service: %s", serviceNN)
+	log.Debugw("to process provider endpoints by provider.service", zap.Any("service", serviceNN))
 	var (
 		service corev1.Service
 	)
 	if err := c.Get(tctx, serviceNN, &service); err != nil {
-		log.Error(err, "failed to get service from GatewayProxy provider", "key", serviceNN)
+		log.Errorw("failed to get service from GatewayProxy provider", zap.Error(err), zap.Any("key", serviceNN))
 		return err
 	}
 	tctx.Services[serviceNN] = &service
@@ -1434,7 +1434,7 @@ func addProviderEndpointsToTranslateContext(tctx *provider.TranslateContext, c c
 		client.MatchingLabels{
 			discoveryv1.LabelServiceName: serviceNN.Name,
 		}); err != nil {
-		log.Error(err, "failed to get endpoints for GatewayProxy provider", "endpoints", serviceNN)
+		log.Errorw("failed to get endpoints for GatewayProxy provider", zap.Error(err), zap.Any("endpoints", serviceNN))
 		return err
 	}
 	tctx.EndpointSlices[serviceNN] = esList.Items
diff --git a/internal/provider/adc/adc.go b/internal/provider/adc/adc.go
index d3eb3f47..a25a39e8 100644
--- a/internal/provider/adc/adc.go
+++ b/internal/provider/adc/adc.go
@@ -409,7 +409,7 @@ func prepareSyncFile(resources any) (string, func(), error) {
 		return "", nil, err
 	}
 
-	log.Debugf("generated adc file, filename: %s, json: %s\n", tmpFile.Name(), string(data))
+	log.Debugw("generated adc file", zap.String("filename", tmpFile.Name()), zap.String("json", string(data)))
 
 	return tmpFile.Name(), cleanup, nil
 }
diff --git a/internal/provider/adc/executor.go b/internal/provider/adc/executor.go
index 857ef14d..77414be7 100644
--- a/internal/provider/adc/executor.go
+++ b/internal/provider/adc/executor.go
@@ -98,7 +98,7 @@ func (e *DefaultADCExecutor) runForSingleServer(ctx context.Context, serverAddr,
 	cmd.Stderr = &stderr
 	cmd.Env = append(os.Environ(), env...)
 
-	log.Debug("running adc command",
+	log.Debugw("running adc command",
 		zap.String("command", strings.Join(cmd.Args, " ")),
 		zap.Strings("env", env),
 	)
@@ -153,7 +153,7 @@ func (e *DefaultADCExecutor) buildCmdError(runErr error, stdout, stderr []byte)
 
 func (e *DefaultADCExecutor) handleOutput(output []byte) (*adctypes.SyncResult, error) {
 	var result adctypes.SyncResult
-	log.Debugf("adc output: %s", string(output))
+	log.Debugw("adc output", zap.String("output", string(output)))
 	if lines := bytes.Split(output, []byte{'\n'}); len(lines) > 0 {
 		output = lines[len(lines)-1]
 	}
diff --git a/internal/provider/adc/store.go b/internal/provider/adc/store.go
index d5626c93..458a68a2 100644
--- a/internal/provider/adc/store.go
+++ b/internal/provider/adc/store.go
@@ -56,7 +56,7 @@ func (s *Store) Insert(name string, resourceTypes []string, resources adctypes.R
 		s.cacheMap[name] = db
 		targetCache = s.cacheMap[name]
 	}
-	log.Debugf("Inserting resources into cache for %s", name)
+	log.Debugw("Inserting resources into cache for", zap.String("name", name))
 	selector := &cache.KindLabelSelector{
 		Kind:      Labels[label.LabelKind],
 		Name:      Labels[label.LabelName],
@@ -163,41 +163,41 @@ func (s *Store) Delete(name string, resourceTypes []string, Labels map[string]st
 		case adctypes.TypeService:
 			services, err := targetCache.ListServices(selector)
 			if err != nil {
-				log.Errorf("failed to list services: %v", err)
+				log.Errorw("failed to list services", zap.Error(err))
 			}
 			for _, service := range services {
 				if err := targetCache.DeleteService(service); err != nil {
-					log.Errorf("failed to delete service %s: %v", service.ID, err)
+					log.Errorw("failed to delete service", zap.Error(err), zap.String("service", service.ID))
 				}
 			}
 		case adctypes.TypeSSL:
 			ssls, err := targetCache.ListSSL(selector)
 			if err != nil {
-				log.Errorf("failed to list ssl: %v", err)
+				log.Errorw("failed to list ssl", zap.Error(err))
 			}
 			for _, ssl := range ssls {
 				if err := targetCache.DeleteSSL(ssl); err != nil {
-					log.Errorf("failed to delete ssl %s: %v", ssl.ID, err)
+					log.Errorw("failed to delete ssl", zap.Error(err), zap.String("ssl", ssl.ID))
 				}
 			}
 		case adctypes.TypeConsumer:
 			consumers, err := targetCache.ListConsumers(selector)
 			if err != nil {
-				log.Errorf("failed to list consumers: %v", err)
+				log.Errorw("failed to list consumers", zap.Error(err))
 			}
 			for _, consumer := range consumers {
 				if err := targetCache.DeleteConsumer(consumer); err != nil {
-					log.Errorf("failed to delete consumer %s: %v", consumer.Username, err)
+					log.Errorw("failed to delete consumer", zap.Error(err), zap.String("consumer", consumer.Username))
 				}
 			}
 		case adctypes.TypeGlobalRule:
 			globalRules, err := targetCache.ListGlobalRules(selector)
 			if err != nil {
-				log.Errorf("failed to list global rules: %v", err)
+				log.Errorw("failed to list global rules", zap.Error(err))
 			}
 			for _, globalRule := range globalRules {
 				if err := targetCache.DeleteGlobalRule(globalRule); err != nil {
-					log.Errorf("failed to delete global rule %s: %v", globalRule.ID, err)
+					log.Errorw("failed to delete global rule", zap.Error(err), zap.String("global rule", globalRule.ID))
 				}
 			}
 		case adctypes.TypePluginMetadata:
diff --git a/internal/provider/adc/translator/apisixroute.go b/internal/provider/adc/translator/apisixroute.go
index c622202e..3cf1a68c 100644
--- a/internal/provider/adc/translator/apisixroute.go
+++ b/internal/provider/adc/translator/apisixroute.go
@@ -25,6 +25,7 @@ import (
 
 	"github.com/api7/gopkg/pkg/log"
 	"github.com/pkg/errors"
+	"go.uber.org/zap"
 	v1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/types"
@@ -233,7 +234,7 @@ func (t *Translator) buildUpstream(tctx *provider.TranslateContext, service *adc
 		}
 		au, ok := tctx.Upstreams[upsNN]
 		if !ok {
-			log.Debugf("failed to retrieve ApisixUpstream from tctx, ApisixUpstream: %s", upsNN)
+			log.Debugw("failed to retrieve ApisixUpstream from tctx", zap.Any("ApisixUpstream", upsNN))
 			continue
 		}
 		upstream, err := t.translateApisixUpstream(tctx, au)
diff --git a/internal/provider/adc/translator/gateway.go b/internal/provider/adc/translator/gateway.go
index 8a287d57..acfdf80b 100644
--- a/internal/provider/adc/translator/gateway.go
+++ b/internal/provider/adc/translator/gateway.go
@@ -96,11 +96,12 @@ func (t *Translator) translateSecret(tctx *provider.TranslateContext, listener g
 					continue
 				}
 				if secret.Data == nil {
-					log.Error("secret data is nil", "secret", secret)
+					log.Errorw("secret data is nil", zap.Any("secret", secret))
 					return nil, fmt.Errorf("no secret data found for %s/%s", ns, name)
 				}
 				cert, key, err := extractKeyPair(secret, true)
 				if err != nil {
+					log.Errorw("failed to extract key pair", zap.Error(err), zap.Any("secret", secret))
 					return nil, err
 				}
 				sslObj.Certificates = append(sslObj.Certificates, adctypes.Certificate{
diff --git a/internal/provider/adc/translator/httproute.go b/internal/provider/adc/translator/httproute.go
index c53c1cc9..8506bc8d 100644
--- a/internal/provider/adc/translator/httproute.go
+++ b/internal/provider/adc/translator/httproute.go
@@ -274,7 +274,8 @@ func (t *Translator) fillHTTPRoutePolicies(routes []*adctypes.Route, policies []
 			for _, data := range policy.Spec.Vars {
 				var v []adctypes.StringOrSlice
 				if err := json.Unmarshal(data.Raw, &v); err != nil {
-					log.Errorf("failed to unmarshal spec.Vars item to []StringOrSlice, data: %s", string(data.Raw)) // todo: update status
+					log.Errorw("failed to unmarshal spec.Vars item to []StringOrSlice", zap.Error(err), zap.String("data", string(data.Raw)))
+					// todo: update status
 					continue
 				}
 				route.Vars = append(route.Vars, v)
diff --git a/test/e2e/scaffold/adc.go b/test/e2e/scaffold/adc.go
index ef075689..12bd229e 100644
--- a/test/e2e/scaffold/adc.go
+++ b/test/e2e/scaffold/adc.go
@@ -143,7 +143,7 @@ func (a *adcDataplaneResource) dumpResources(ctx context.Context) (*translator.T
 	cmd.Env = append(cmd.Env, os.Environ()...)
 	cmd.Env = append(cmd.Env, adcEnv...)
 
-	log.Debug("running adc command", zap.String("command", cmd.String()), zap.Strings("env", adcEnv))
+	log.Debugw("running adc command", zap.String("command", cmd.String()), zap.Strings("env", adcEnv))
 
 	if err := cmd.Run(); err != nil {
 		stderrStr := stderr.String()