Packages

p

com.daml

logging

package logging

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. logging
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. final class ContextualizedLogger extends AnyRef
  2. final class LoggingContext extends AnyRef
  3. type LoggingContextOf[+P] = T[P]

Value Members

  1. object ContextualizedLogger
  2. object JsonStringSerializer
  3. object LoggingContext
  4. object LoggingContextOf

    LoggingContext with a phantom type parameter representing what kind of details are in it.

    LoggingContext with a phantom type parameter representing what kind of details are in it. If a function that accepts a LoggingContext is supposed to trust that the caller has already embedded all the relevant data that would be passed as arguments into the context, then you could say a function that accepts a LoggingContextOf will "trust, but verify" instead.

    You can pick a tag to represent each kind of data you want to appear in a context. The use of + means the tag language in LoggingContextOf[Tag] reflects the subtyping relation built into Scala, and Any and with form the zero and append of a commutative monoid of tags.

    A few, but not all, type-level implications of this:

    • LoggingContextOf[Foo with Bar] is-a LoggingContextOf[Foo]
    • LoggingContextOf[Foo with Bar] is-a LoggingContextOf[Bar]
    • LoggingContextOf[Elephant] is-a LoggingContextOf[Animal]
    • LoggingContext is-a LoggingContextOf[Any]

    A context with a more specific scope will always be preferred in implicit resolution. So if you call a function demanding a LoggingContextOf[Foo] and you have two implicits in scope, a LoggingContextOf[Foo] and a LoggingContextOf[Foo with Bar] then the latter will be chosen, in accordance with SLS §7.2, §6.26.3. This fits well the "more context = better than" overall philosophy of the contextualized-logging library.

Inherited from AnyRef

Inherited from Any

Ungrouped