The Timber library is used by Evergreen to send test results and performance data to Cedar, and contains configuration utilities for connecting to Cedar.
See cedar and poplar for more information.
It also implements a grip Sender backed by Cedar Buildlogger which is still used for some log storage purposes by Evergreen.
See grip for more information.
When initializing a Sender with timber, a gRPC connection to a Cedar backed application is established. Log lines are buffered and sent over in batches to Cedar via this gRPC connection. Buffer size, flush intervals, etc. are all configurable. The Sender is thread-safe.
Using the timber Sender is straightforward, once the logger is setup it can be passed around anywhere in your code. Log lines are sent using the Send command:
opts := &timber.LoggerOptions{} // populate options struct // ... l := timber.MakeLogger(ctx, "logging-example", opts) grip.SetSender(l) l.Send(message.ConvertToComposer(level.Info, "logging is easy!")) l.Send(message.ConvertToComposer(level.Debug, "another example")) // make sure to close our your logger! err := l.Close()
The timber project uses a makefile
to coordinate testing.
The makefile provides the following targets:
build
- Compiles non-test code.
test
- Runs all tests, sequentially, for all packages.
test-<package>
- Runs all tests for a specific package.
race
,race-<package>
- As with their
test
counterpart, these targets run tests with the race detector enabled. lint
,lint-<package>
- Installs and runs the
gometaliter
with appropriate settings to lint the project.
File tickets in Jira with the MAKE project.
See the timber godoc for complete documentation.
See the grip godoc for documentation of the Sender interface.