🔊 Break out Jackson serde module and make both Logstash and Log4J2 implementations depend on it.
- Break out jackson module as a distinct dependency.
- ⬆️ Upgrade to Log4J2 2.18.0
🔄 Changes to
CoreLoggerAPI to allow for more flexible loggers in echopraxia-plusscala. Some optimizations.
- ➕ Add
- Document "call-by-name" semantics on
- 🔦 Expose
- ⬆️ Upgrade logstash-logback-encoder to 7.2 #203
- ➕ Add
coreLogger.logHandlefor loggers that may log multiple times internally when called. #202
- 🛠 Fix a bug where
withFieldswas being memoized and evaluated once. #187
- ➕ Add
🐛 Bug fixes and some enhancements around number values.
ctx.findListreturns a list with a single element if an element matches, i.e.
ctx.findList("$.exception")returns a list containing a single
- ➕ Add object equality methods for
- ➕ Add
NumberValueand specialize types so that
NumberValue<Byte>are not comparable.
- 👍 Set null numbers to return
nullto better reflect java number behavior.
- ✂ Remove generic
Numericmethods, use specific numbers in methods.
- ➕ Add cache for number values corresponding to the java.lang number caches.
📦 The API package now begins with the package name
com.tersesystems.echopraxia.apiand does not contain the
LoggerFactoryclasses. All the classes in
supporthave been moved to
🏗 There is a new
FieldBuilderResultinterface that is responsible for getting fields from a field builder. The
Field.BuilderFunctioninterface which extended
Function<FB, List<Field>>has been replaced with plain
Function<FB, FieldBuilderResult>. The
Fieldinterface now extends
FieldBuilderResult. The upshot of this is that both
FieldBuilderResultand there is no more need for
FieldBuilderWithOnlyinterface is available for backwards compatibility.
FieldBuilderResult.listwill take most aggregate forms;
Field.Builderinterface is now
Field.Valueinterface and subclasses have been moved to a top level class
👻 There is a
FieldConstantsclass that uses a resource bundle to load in hardcoded field constants, such as
The core logger no longer depends on
FB extends FieldBuilder, so it is now possible to create custom loggers that don't expose
There is a new
Utilities.threadContext()method which is a cleaner way to manage thread context in custom loggers.
🚚 Jayway specific predicates removed from
📦 Logger has been broken out into a different maven package. It is still in the same location
withExecutormethod that returned
AsyncLoggerhas been removed.
withFieldBuilder(Foo.class)method has been removed, please use