From d44dc2d5e6b7b1fde02fd6bef526394bcf05f571 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Wed, 22 Nov 2017 09:35:25 +0000 Subject: [PATCH] Code Style: Prefer WithFields over Infof (#349) * Code Style: Prefer WithFields over Infof * Update CODE_STYLE.md --- CODE_STYLE.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CODE_STYLE.md b/CODE_STYLE.md index 65d0daf4c..e8208172c 100644 --- a/CODE_STYLE.md +++ b/CODE_STYLE.md @@ -52,6 +52,29 @@ github. These can be added just before merging of the PR to master, and the issue number should be added to the comment, e.g. `// TODO(#324): ...` +## Logging + +We generally prefer to log with static log messages and include any dynamic +information in fields. + +```golang +logger := util.GetLogger(ctx) + +// Not recommended +logger.Infof("Finished processing keys for %s, number of keys %d", name, numKeys) + +// Recommended +logger.WithFields(logrus.Fields{ + "numberOfKeys": numKeys, + "entityName": name, +}).Info("Finished processing keys") +``` + +This is useful when logging to systems that natively understand log fields, as +it allows people to search and process the fields without having to parse the +log message. + + ## Visual Studio Code If you use VSCode then the following is an example of a workspace setting that