Changelog History
-
v2.1.1 Changes
๐ 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
-
v2.1.0 Changes
๐ Changes to
CoreLogger
API to allow for more flexible loggers in echopraxia-plusscala. Some optimizations.- โ Add
extraFields
parameter toCoreLogger
methods. #201 - Document "call-by-name" semantics on
logger.withFields
. #188 - ๐ฆ Expose
getArgumentFields()
andgetLoggerFields()
methods onLoggingContext
. #197 - โฌ๏ธ Upgrade logstash-logback-encoder to 7.2 #203
- โ Add
coreLogger.logHandle
for loggers that may log multiple times internally when called. #202 - ๐ Fix a bug where
withFields
was being memoized and evaluated once. #187
- โ Add
-
v2.0.1 Changes
๐ Bug fixes and some enhancements around number values.
- ๐ป
ctx.findList
returns a list with a single element if an element matches, i.e.ctx.findList("$.exception")
returns a list containing a singleThrowable
. - โ Add object equality methods for
Value
andField
instances. - โ Add
Comparable
interface forNumberValue
and specialize types so thatNumberValue<Integer>
andNumberValue<Byte>
are not comparable. - ๐ Set null numbers to return
0
rather thannull
to better reflect java number behavior. - โ Remove generic
Numeric
methods, use specific numbers in methods. - โ Add cache for number values corresponding to the java.lang number caches.
- ๐ป
-
v2.0.0 Changes
API changes
๐ฆ The API package now begins with the package name
com.tersesystems.echopraxia.api
and does not contain theLogger
orLoggerFactory
classes. All the classes incore
andsupport
have been moved toapi
.๐ There is a new
FieldBuilderResult
interface that is responsible for getting fields from a field builder. TheField.BuilderFunction
interface which extendedFunction<FB, List<Field>>
has been replaced with plainFunction<FB, FieldBuilderResult>
. TheField
interface now extendsFieldBuilderResult
. The upshot of this is that bothfb.list
andfield
return aFieldBuilderResult
and there is no more need forfb.only
. AFieldBuilderWithOnly
interface is available for backwards compatibility.FieldBuilderResult.list
will take most aggregate forms;Stream
,Iterator
, etc.๐ The
Field.Builder
interface is nowFieldBuilder
.๐ The
Field.Value
interface and subclasses have been moved to a top level classValue
, i.e.Value.string("foo")
rather thanField.Value.string("foo")
.๐ป There is a
FieldConstants
class that uses a resource bundle to load in hardcoded field constants, such asexception
andstackTrace
. UseFieldConstants.EXCEPTION
to reference.The core logger no longer depends on
FB extends FieldBuilder
, so it is now possible to create custom loggers that don't exposefb.keyValue
orfb.string
.There is a new
Utilities.threadContext()
method which is a cleaner way to manage thread context in custom loggers.๐ Jayway specific predicates removed from
LoggingContext
API.Logger Changes
๐ฆ Logger has been broken out into a different maven package. It is still in the same location
com.tersesystems.echopraxia.Logger
.๐ The
withExecutor
method that returnedAsyncLogger
has been removed.๐ The
withFieldBuilder(Foo.class)
method has been removed, please usewithFieldBuilder(new Foo)
instead.