Package

kadai.log

json

Permalink

package json

Visibility
  1. Public
  2. All

Type Members

  1. trait JsonLogging extends Logging

    Permalink

    Mixin if you want your class to be able to log structured objects in JSON format.

    Mixin if you want your class to be able to log structured objects in JSON format. You will need an argonaut.EncodeJson instance in implicit scope for the object you try and log.

    To get the instances, you need to also "import JsonLogging._"

    Note that you normally only need an implicit EncodeJson[A] for any type you want to log in order to encode the JSON representation that is logged. If you do not have an EncodeJson for the message object, then it will fall back to a String representation given by the Show[Foo] instance in scope.

    If you want fine-grained control of the output, and in particular want to control the top level names that are produced, please create a custom implicit JsonMessgae.Qualified[Foo] that turns your Foo into a List[JsonAssoc]. Care is needed though about the names as any clashes can lead to bugs in some log processing systems, such as https://github.com/elastic/elasticsearch/issues/12366

    See JsonLayout for details on how to configure log4j2 to support JSON output

  2. trait JsonLoggingInstances extends AnyRef

    Permalink
  3. case class JsonMessage[A](value: A, json: List[argonaut.Json.JsonAssoc]) extends LogMessage[A] with Product with Serializable

    Permalink

    A Jsonable message.

    A Jsonable message. JsonLayout knows how to encode this payload.

  4. sealed trait LowPriorityImplicits extends AnyRef

    Permalink

Value Members

  1. object JsonLogging extends JsonLoggingInstances

    Permalink
  2. object JsonMessage extends Serializable

    Permalink

Ungrouped