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-aLoggingContextOf[Foo]
LoggingContextOf[Foo with Bar]
is-aLoggingContextOf[Bar]
LoggingContextOf[Elephant]
is-aLoggingContextOf[Animal]
LoggingContext
is-aLoggingContextOf[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.
- Alphabetic
- By Inheritance
- LoggingContextOf
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def label[P]: label[P]
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newLoggingContext[P, Z](label: label[P], entries: LoggingEntry*)(f: (LoggingContextOf[P]) => Z): Z
- Annotations
- @nowarn()
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withEnrichedLoggingContext[P, A](label: label[P], kvs: LoggingEntry*)(implicit loggingContext: LoggingContextOf[A]): withEnrichedLoggingContext[P, A]
- Annotations
- @nowarn()
- object Module
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
- Deprecated