aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/logger.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes/logger.go')
-rw-r--r--plugin/kubernetes/logger.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/plugin/kubernetes/logger.go b/plugin/kubernetes/logger.go
new file mode 100644
index 000000000..ac9fe8071
--- /dev/null
+++ b/plugin/kubernetes/logger.go
@@ -0,0 +1,38 @@
+package kubernetes
+
+import (
+ clog "github.com/coredns/coredns/plugin/pkg/log"
+
+ "github.com/go-logr/logr"
+)
+
+// loggerAdapter is a simple wrapper around CoreDNS plugin logger made to implement logr.LogSink interface, which is used
+// as part of klog library for logging in Kubernetes client. By using this adapter CoreDNS is able to log messages/errors from
+// kubernetes client in a CoreDNS logging format
+type loggerAdapter struct {
+ clog.P
+}
+
+func (l *loggerAdapter) Init(_ logr.RuntimeInfo) {
+}
+
+func (l *loggerAdapter) Enabled(_ int) bool {
+ // verbosity is controlled inside klog library, we do not need to do anything here
+ return true
+}
+
+func (l *loggerAdapter) Info(_ int, msg string, _ ...interface{}) {
+ l.P.Info(msg)
+}
+
+func (l *loggerAdapter) Error(_ error, msg string, _ ...interface{}) {
+ l.P.Error(msg)
+}
+
+func (l *loggerAdapter) WithValues(_ ...interface{}) logr.LogSink {
+ return l
+}
+
+func (l *loggerAdapter) WithName(_ string) logr.LogSink {
+ return l
+}