Safe Haskell | None |
---|---|
Language | Haskell2010 |
Arbitary binary object logging available for GHC 8.8 or later. Unlike the other
tracing functions traceBinaryEvent
takes an arbitrary ByteString
object as
opposed to a UTF-8 encoded string.
Synopsis
- traceBinaryEvent :: ByteString -> a -> a
- traceBinaryEventIO :: ByteString -> IO ()
Binary eventlog tracing
traceBinaryEvent :: ByteString -> a -> a Source #
The traceBinaryEvent
function behaves like
traceEvent
but with the difference that the message
is a binary object rather than a UTF-8 encoded string.
It is suitable for use in pure code. In an IO context use
traceBinaryEventIO
instead.
Note that when using GHC's SMP runtime, it is possible (but rare) to get
duplicate events emitted if two CPUs simultaneously evaluate the same thunk
that uses traceBinaryEvent
.
Also note that this function doesn't evaluate the ByteString
if user
tracing in evnetlog is disabled.
The input should be shorter than \(2^{16}\) bytes. Otherwise the RTS generates a broken eventlog.
traceBinaryEventIO :: ByteString -> IO () Source #
The traceBinaryEventIO
function emits a binary message to the eventlog,
if eventlog profiling is available and enabled at runtime.
Compared to traceBinaryEvent
, traceBinaryEventIO
sequences the event with
respect to other IO actions.
Also note that this function doesn't evaluate the ByteString
if user
tracing in evnetlog is disabled.
The input should be shorter than \(2^{16}\) bytes. Otherwise the RTS generates a broken eventlog.