Logger v0.1.0

Source
A logger over any writer: levels, context fields and timestamps.

Logger

pub struct Logger {
    // private fields
}

Writes records at or above a level to a stream, each as one write. Not copied. A logging call never fails: the first failure to write is kept for Failure to report, and the records after it are still attempted. A logger is used by one thread at a time; the process-wide functions such as Info are the ones to share between threads.

Source

Associated functions

New

pub func New(
    allocator: Allocator,
    sink: Writer,
    format: LogFormat
) -> Logger

A logger writing records in format to sink, at level Info and above, with times.

NameTypeDescription
allocatorAllocatorwhat each record is built in before it is written
sinkWriterwhere the records go
formatLogFormathow they are written

Returns: the logger

Source

Methods

SetLevel

pub func SetLevel(self: &var Logger, level: Level)

Writes records at level and above from now on.

NameTypeDescription
levelLevelthe least severe level written

Source

MinimumLevel

pub func MinimumLevel(self: &Logger) -> Level

The least severe level written.

Returns: the level

Source

Enabled

pub func Enabled(self: &Logger, level: Level) -> bool

Whether a record at level would be written, by this logger's level and the build's CompiledLevel. Worth asking before working out fields that cost something to compute.

NameTypeDescription
levelLevelthe level to ask about

Returns: whether it would be written

Source

SetTimestamps

pub func SetTimestamps(self: &var Logger, enabled: bool)

Whether records start with the time. Leaving it out suits a destination that adds its own, such as a service manager's journal.

NameTypeDescription
enabledboolwhether to write the time

Source

SetContext

pub func SetContext(self: &var Logger, fields: Field[..])

Fields written with every record, before the record's own, such as a request's identifier.

NameTypeDescription
fieldsField[..]the fields, borrowed until they are replaced

Source

Failure

pub func Failure(self: &Logger) -> IoError?

The first failure to write a record, or none when every record was written.

Returns: the failure

Source

Log

pub func Log(
    self: &var Logger,
    level: Level,
    message: char8[..],
    fields: Field[..]
)

Writes a record at level with message and fields, if the level is enabled.

NameTypeDescription
levelLevelhow severe it is
messagechar8[..]what happened
fieldsField[..]the values that go with it

Source

Flush

pub func Flush(self: &var Logger)

Asks the stream to deliver what it holds.

Source

Trace

pub func Trace(
    self: &var Logger,
    message: char8[..],
    fields: Field[..]
)

pub func Trace(self: &var Logger, message: char8[..])

Writes a Trace record with no fields.

OverloadSummary
pub func Trace(self: &var Logger, message: char8[..], fields: Field[..])Writes a Trace record.
pub func Trace(self: &var Logger, message: char8[..])Writes a Trace record with no fields.
NameTypeDescription
messagechar8[..]what happened
fieldsField[..]the values that go with it

Source

Debug

pub func Debug(
    self: &var Logger,
    message: char8[..],
    fields: Field[..]
)

pub func Debug(self: &var Logger, message: char8[..])

Writes a Debug record with no fields.

OverloadSummary
pub func Debug(self: &var Logger, message: char8[..], fields: Field[..])Writes a Debug record.
pub func Debug(self: &var Logger, message: char8[..])Writes a Debug record with no fields.
NameTypeDescription
messagechar8[..]what happened
fieldsField[..]the values that go with it

Source

Info

pub func Info(
    self: &var Logger,
    message: char8[..],
    fields: Field[..]
)

pub func Info(self: &var Logger, message: char8[..])

Writes an Info record with no fields.

OverloadSummary
pub func Info(self: &var Logger, message: char8[..], fields: Field[..])Writes an Info record.
pub func Info(self: &var Logger, message: char8[..])Writes an Info record with no fields.
NameTypeDescription
messagechar8[..]what happened
fieldsField[..]the values that go with it

Source

Warn

pub func Warn(
    self: &var Logger,
    message: char8[..],
    fields: Field[..]
)

pub func Warn(self: &var Logger, message: char8[..])

Writes a Warn record with no fields.

OverloadSummary
pub func Warn(self: &var Logger, message: char8[..], fields: Field[..])Writes a Warn record.
pub func Warn(self: &var Logger, message: char8[..])Writes a Warn record with no fields.
NameTypeDescription
messagechar8[..]what happened
fieldsField[..]the values that go with it

Source

Error

pub func Error(
    self: &var Logger,
    message: char8[..],
    fields: Field[..]
)

pub func Error(self: &var Logger, message: char8[..])

Writes an Error record with no fields.

OverloadSummary
pub func Error(self: &var Logger, message: char8[..], fields: Field[..])Writes an Error record.
pub func Error(self: &var Logger, message: char8[..])Writes an Error record with no fields.
NameTypeDescription
messagechar8[..]what happened
fieldsField[..]the values that go with it

Source