Skip to content

Commit 48cb85a

Browse files
committed
additional logging in core reconciler
Our debug-level logging wasn't particularly verbose or informative. This patch adds a number of debug-level log messages into the core reconciler along with a new `ResourceLogger` struct in `pkg/runtime/log` that can be used to simplify resource-specific log messages. Example output of these new log messages along with similar debug-level messages added to the s3-controller's bucket resource manager. These resource manager-level log messages will need to be added in a separate patch to the code-generator once this patch merges. ``` [jaypipes@thelio community]$ k logs -n ack-system ack-s3-controller-844cddfbbc-k4d6l 2021-06-17T22:47:30.023Z INFO controller-runtime.metrics metrics server is starting to listen {"addr": "0.0.0.0:8080"} 2021-06-17T22:47:30.023Z INFO setup initializing service controller {"aws.service": "s3"} 2021-06-17T22:47:30.025Z INFO setup starting manager {"aws.service": "s3"} 2021-06-17T22:47:30.025Z INFO controller-runtime.manager starting metrics server {"path": "/metrics"} 2021-06-17T22:47:30.025Z INFO controller-runtime.controller Starting EventSource {"controller": "bucket", "source": "kind source: /, Kind="} 2021-06-17T22:47:30.025Z INFO controller-runtime.controller Starting EventSource {"controller": "adoptedresource", "source": "kind source: /, Kind="} 2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "kube-node-lease"} 2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "default"} 2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "local-path-storage"} 2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "ack-system"} 2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "local-path-storage"} 2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "ack-system"} 2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "kube-node-lease"} 2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "default"} 2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting Controller {"controller": "adoptedresource"} 2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting workers {"controller": "adoptedresource", "worker count": 1} 2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting Controller {"controller": "bucket"} 2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting workers {"controller": "bucket", "worker count": 1} 2021-06-17T22:47:48.644Z DEBUG ackrt > r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:48.644Z DEBUG ackrt > rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:48.644Z DEBUG ackrt > rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":null,"conditions":null}} 2021-06-17T22:47:49.661Z DEBUG ackrt < rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": "resource not found"} 2021-06-17T22:47:49.661Z DEBUG ackrt < rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": "resource not found"} 2021-06-17T22:47:49.661Z DEBUG ackrt > r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:49.661Z DEBUG ackrt > kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:49.664Z DEBUG ackrt < kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:49.664Z DEBUG ackrt marked resource as managed {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:49.664Z DEBUG ackrt < r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:49.664Z DEBUG ackrt > rm.Create {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:49.664Z DEBUG ackrt > rm.sdkCreate {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":null,"conditions":null}} 2021-06-17T22:47:50.992Z DEBUG ackrt < rm.sdkCreate {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}} 2021-06-17T22:47:50.992Z DEBUG ackrt < rm.Create {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:50.992Z INFO ackrt created new resource {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:50.992Z DEBUG ackrt > kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:50.995Z DEBUG ackrt < kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:50.995Z DEBUG ackrt patched resource status {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "latest": {}} 2021-06-17T22:47:50.995Z DEBUG ackrt < r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:50.995Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"} 2021-06-17T22:47:50.995Z DEBUG ackrt > r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:50.995Z DEBUG ackrt > rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:50.995Z DEBUG ackrt > rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}} 2021-06-17T22:47:51.093Z DEBUG ackrt < rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}} 2021-06-17T22:47:51.093Z DEBUG ackrt < rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:51.093Z DEBUG ackrt > r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:51.093Z DEBUG ackrt < r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:51.093Z DEBUG ackrt > kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1} 2021-06-17T22:47:51.096Z DEBUG ackrt < kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:51.096Z DEBUG ackrt patched resource status {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "latest": {}} 2021-06-17T22:47:51.096Z DEBUG ackrt < r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null} 2021-06-17T22:47:51.096Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"} 2021-06-17T22:48:09.428Z DEBUG ackrt > r.cleanup {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:09.428Z DEBUG ackrt > rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:09.428Z DEBUG ackrt > rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}} 2021-06-17T22:48:10.141Z DEBUG ackrt < rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}} 2021-06-17T22:48:10.141Z DEBUG ackrt < rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null} 2021-06-17T22:48:10.141Z DEBUG ackrt > rm.Delete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:10.141Z DEBUG ackrt > rm.sdkDelete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}} 2021-06-17T22:48:11.063Z DEBUG ackrt < rm.sdkDelete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:11.063Z DEBUG ackrt < rm.Delete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null} 2021-06-17T22:48:11.063Z DEBUG ackrt > r.setResourceUnmanaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:11.063Z DEBUG ackrt > kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:11.068Z DEBUG ackrt < kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null} 2021-06-17T22:48:11.068Z DEBUG ackrt removed resource from management {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:11.068Z DEBUG ackrt < r.setResourceUnmanaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null} 2021-06-17T22:48:11.068Z INFO ackrt deleted resource {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2} 2021-06-17T22:48:11.068Z DEBUG ackrt < r.cleanup {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null} 2021-06-17T22:48:11.068Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"} 2021-06-17T22:48:11.068Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"} ```
1 parent 0ff9ffa commit 48cb85a

File tree

7 files changed

+213
-46
lines changed

7 files changed

+213
-46
lines changed

mocks/pkg/types/aws_resource_logger.go

Lines changed: 33 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/pkg/types/aws_resource_reconciler.go

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/runtime/log/resource.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,65 @@ import (
2020
acktypes "github.com/aws-controllers-k8s/runtime/pkg/types"
2121
)
2222

23+
var (
24+
// NoopLogger is useful for testing/mocking
25+
NoopLogger acktypes.AWSResourceLogger = &voidLogger{}
26+
)
27+
28+
// voidLogger implements AWSResourceLogger but does nothing. Useful for
29+
// testing and mocking...
30+
type voidLogger struct{}
31+
32+
func (l *voidLogger) WithValues(...interface{}) {}
33+
func (l *voidLogger) Info(string, ...interface{}) {}
34+
func (l *voidLogger) Debug(string, ...interface{}) {}
35+
36+
// ResourceLogger is a wrapper around a logr.Logger that writes log messages
37+
// about resources involved in a controller loop. It implements
38+
// `pkg/types.AWSResourceLogger`
39+
type ResourceLogger struct {
40+
log logr.Logger
41+
res acktypes.AWSResource
42+
}
43+
44+
// WithValues adapts the internal logger with a set of additional values
45+
func (rl *ResourceLogger) WithValues(
46+
values ...interface{},
47+
) {
48+
rl.log = rl.log.WithValues(values...)
49+
}
50+
51+
// Debug writes a supplied log message about a resource that includes a set of
52+
// standard log values for the resource's kind, namespace, name, etc
53+
func (rl *ResourceLogger) Debug(
54+
msg string,
55+
additionalValues ...interface{},
56+
) {
57+
AdaptResource(rl.log, rl.res, additionalValues...).V(1).Info(msg)
58+
}
59+
60+
// Info writes a supplied log message about a resource that includes a
61+
// set of standard log values for the resource's kind, namespace, name, etc
62+
func (rl *ResourceLogger) Info(
63+
msg string,
64+
additionalValues ...interface{},
65+
) {
66+
AdaptResource(rl.log, rl.res, additionalValues...).V(0).Info(msg)
67+
}
68+
69+
// NewResourceLogger returns a resourceLogger that can write log messages about
70+
// a resource.
71+
func NewResourceLogger(
72+
log logr.Logger,
73+
res acktypes.AWSResource,
74+
additionalValues ...interface{},
75+
) *ResourceLogger {
76+
return &ResourceLogger{
77+
log: AdaptResource(log, res, additionalValues...),
78+
res: res,
79+
}
80+
}
81+
2382
// AdaptResource returns a logger with log values set for the resource's kind,
2483
// namespace, name, etc
2584
func AdaptResource(

0 commit comments

Comments
 (0)