Packages

o

com.daml.logging

LoggingContextOf

object LoggingContextOf

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.

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

Type Members

  1. sealed abstract class Module extends AnyRef
  2. final class label[P] extends AnyVal
  3. final class withEnrichedLoggingContext[P, A] extends AnyRef

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. def label[P]: label[P]
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def newLoggingContext[P, Z](label: label[P], entries: LoggingEntry*)(f: (LoggingContextOf[P]) => Z): Z
    Annotations
    @nowarn()
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  16. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. def withEnrichedLoggingContext[P, A](label: label[P], kvs: LoggingEntry*)(implicit loggingContext: LoggingContextOf[A]): withEnrichedLoggingContext[P, A]
    Annotations
    @nowarn()
  22. object Module

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped