Xo is experimental. The source is now public on GitHub, or try Xo in your browser.
Menu · log

Docs

std/log

On this page

Index

Types

Logger

struct Logger {}

A logger that adds fields to every record it writes (log/slog’s Logger.With; decision 0413): a value, so a handler can make one per request and pass it on. A record’s own fields override a logger’s of the same name. A logger made in a dependency’s code keeps that dependency as its records’ module (decision 0173).

Source: std/log.xo:22

Logger.with

fn (l: Logger) with(fields: Map[Str, Debug]) -> Logger

Source: std/log.xo:24

Logger.debug

fn (l: Logger) debug(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:25

Logger.info

fn (l: Logger) info(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:26

Logger.warn

fn (l: Logger) warn(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:27

Logger.error

fn (l: Logger) error(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:28

Level

enum Level {
  Debug
  Info
  Warn
  Error
}

Source: std/log.xo:30

Format

enum Format {
  Text
  Json
}

Source: std/log.xo:37

Record

struct Record {
  level: Level
  msg: Str
  fields: Map[Str, Str]
  module: Str
}

One log record as captured in tests (std.md 6, 8.6). Field values are their text form. module is the dependency that wrote the record ("<module path>@<version>", decision 0173), "" for the main module.

Source: std/log.xo:45

Functions

debug

fn debug(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:5

info

fn info(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:6

warn

fn warn(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:7

error

fn error(msg: Str, fields: Map[Str, Debug] = {}) uses log

Source: std/log.xo:8

enabled

fn enabled(level: Level) -> Bool uses log

Whether a record of level would be written under the configured level (decision 0558): a call to debug, info, warn or error is compiled as if enabled(level) { call }, so its arguments are not evaluated otherwise; also for work that is not an argument (a costly dump).

Source: std/log.xo:14

configure

fn configure(out: Stdio, level: Level = Level.Info, format: Format = Format.Text) uses stdio

Source: std/log.xo:15

with

fn with(fields: Map[Str, Debug]) -> Logger

Source: std/log.xo:23

↑ index