If using `with` to add logging context, any context that has the same
keys as existing context will disappear after the with block completes,
instead of reverting back to the original context.
This fixes that by restoring the original context directly instead of
just deleting the keys from the `with` context.
* logger_formatter -> log_format
* avoid touching global Sidekiq.logger in JobLogger
* rewrite tests for compactness and coverage
* hide banner in JSON
* Check Config File Existence (#4054)
* Check config file existence
* Eager config file check
* Parse expanded path to default sidekiq.yml config file in Rails app
* Cleanup
* Add minitest-around
* Extract context from formatter
* Add JSON logger formatter
* Adjust job logger to handle elapsed time within context
* Add tid test
* Rename processor logger
* Enforce global state reset in logging tests
* Add warning about upcoming refactoring to Sidekiq::Logging
* Replace around hook with explicit stub inside test
It's implemented with fibers, which means Thread.current returns different values in JRuby.
* Fix typo
* Concise JSON formatter keys
* Add logger_formatter option
* Shift context from array of strings to hash
Allows more flexibly format context in the different formatters.
* Adjust warning message regarding context type change
* Add "Formatter" suffix to classes
* Fix CLI specs
* Replace Sidekiq::Logging with Sidekiq::Logger
* Namespace logger formatters
* Remove rails 4 appraisal