Skip to main content

Logger

walkerOS provides a centralized logging system that enables consistent logging across the collector, sources, and destinations. The logger supports three log levels and provides scoped logging for better debugging.

Configuration

Configure logging when initializing the collector:

Loading...

Log levels

LevelValueDescription
ERROR0Only errors (default)
INFO1Errors and informational messages
DEBUG2All messages including debug information

Using the logger

The logger is automatically available in destination and source contexts:

In destinations

Loading...

In sources

Loading...

Logger API

Methods

MethodDescription
error(message, context?)Log an error message
info(message, context?)Log an informational message
debug(message, context?)Log a debug message
throw(message, context?)Log an error and throw an exception (returns never)
scope(name)Create a scoped logger with a prefixed scope

Error handling

The logger accepts Error objects directly and automatically extracts relevant information:

Loading...

Throwing errors

Use logger.throw() to log an error and throw in a single call:

Loading...

Scoped loggers

Scoped loggers prefix log messages with context information, making it easier to trace logs to their origin:

Loading...

Custom handler

For advanced use cases like sending logs to external services, configure a custom handler:

Loading...

The handler receives:

ParameterTypeDescription
levelLevelLog level enum (ERROR=0, INFO=1, DEBUG=2)
messagestringThe log message
contextLogContextAdditional context object
scopestring[]Array of scope names
originalHandlerDefaultHandlerThe default console handler

Testing

Use the mock logger utility for testing destinations and sources:

Loading...

The mock logger provides jest mock functions for all logger methods plus:

  • scopedLoggers: Array of scoped loggers created via scope()
💡 Need Professional Support?
Need professional support with your walkerOS implementation? Check out our services.