| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Arbiter.Worker.Logger
Description
Logging for the Arbiter worker.
Arbiter handles its own structured JSON logging internally. Users can:
- Control the minimum log level
- Choose the output destination (stdout, stderr, custom LoggerSet, or callback)
- Provide a
LogCallbackto receive pre-rendered JSON log lines - Inject additional context (e.g., trace IDs) into every log message
For application-level job logging, use ObservabilityHooks instead.
Synopsis
- data LogConfig = LogConfig {}
- data LogDestination
- = LogStdout
- | LogStderr
- | LogFastLogger LoggerSet
- | LogCallback (LogLevel -> Text -> [Pair] -> IO ())
- | LogDiscard
- defaultLogConfig :: LogConfig
- silentLogConfig :: LogConfig
- data LogLevel
- type Pair = (Key, Value)
- (.=) :: (KeyValue e kv, ToJSON v) => Key -> v -> kv
Log Configuration
Configuration for Arbiter's internal logging.
Arbiter always outputs structured JSON logs. This config controls filtering, destination, and allows injecting additional context.
Constructors
| LogConfig | |
Fields
| |
data LogDestination Source #
Where Arbiter writes log output.
Constructors
| LogStdout | Log to stdout (default) |
| LogStderr | Log to stderr |
| LogFastLogger LoggerSet | Log to a custom fast-logger |
| LogCallback (LogLevel -> Text -> [Pair] -> IO ()) | Log to a user-provided callback. The callback receives the let cb level msg ctx = myLogger level msg ctx
in defaultLogConfig { logDestination = LogCallback cb }
|
| LogDiscard | Discard all logs (silent mode) |
defaultLogConfig :: LogConfig Source #
Default log configuration: Info level to stdout, no additional context.
silentLogConfig :: LogConfig Source #
Silent log configuration: discards all logs.
Log Levels
Log severity levels.
Instances
| Bounded LogLevel Source # | |
| Enum LogLevel Source # | |
Defined in Arbiter.Worker.Logger | |
| Read LogLevel Source # | |
| Show LogLevel Source # | |
| Eq LogLevel Source # | |
| Ord LogLevel Source # | |
Defined in Arbiter.Worker.Logger | |