tailscale/types/logger
Avery Pennarun 19c3e6cc9e types/logger: rate limited: more hysteresis, better messages.
- Switch to our own simpler token bucket, since x/time/rate is missing
  necessary stuff (can't provide your own time func; can't check the
  current bucket contents) and it's overkill anyway.

- Add tests that actually include advancing time.

- Don't remove the rate limit on a message until there's enough room to
  print at least two more of them. When we do, we'll also print how
  many we dropped, as a contextual reminder that some were previously
  lost. (This is more like how the Linux kernel does it.)

- Reformat the [RATE LIMITED] messages to be shorter, and to not
  corrupt original message. Instead, we print the message, then print
  its format string.

- Use %q instead of \"%s\", for more accurate parsing later, if the
  format string contained quotes.

Fixes #1772

Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
2021-04-30 01:01:15 -04:00
..
logger.go types/logger: rate limited: more hysteresis, better messages. 2021-04-30 01:01:15 -04:00
logger_test.go types/logger: rate limited: more hysteresis, better messages. 2021-04-30 01:01:15 -04:00
rusage.go types/logger: move RusagePrefixLog to logger package, disable by default 2020-10-19 07:56:23 -07:00
rusage_nowindows.go all: prepare for GOOS=ios in Go 1.16 2020-11-11 09:17:04 -08:00
rusage_windows.go types/logger: move RusagePrefixLog to logger package, disable by default 2020-10-19 07:56:23 -07:00
tokenbucket.go types/logger: rate limited: more hysteresis, better messages. 2021-04-30 01:01:15 -04:00