How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/workleap/wl-logging --skill workleap-loggingBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Workleap Logging (@workleap/logging)
A structured logging library for Workleap frontend applications. Provides composable, styled console logging with support for scopes, multiple log levels, and integration with telemetry tools.
The library exports four key types: Logger (base interface), RootLogger (extends Logger with scope support), BrowserConsoleLogger, and CompositeLogger.
Installation
pnpm add @workleap/loggingCore Concepts
Loggers
- BrowserConsoleLogger: Outputs to browser console with styling support
- CompositeLogger: Forwards logs to multiple underlying loggers
- createCompositeLogger(verbose, loggers): Factory function that creates a
CompositeLogger. Whenverboseistrueand no loggers are provided, it adds aBrowserConsoleLogger; otherwise it uses only the loggers you pass (an empty list produces no output). Seereferences/api.mdfor details.
Log Levels (lowest to highest severity)
debug- Detailed diagnostic info for developmentinformation- General application flow eventswarning- Non-critical issues needing attentionerror- Failures that prevent functionality from completing (triggers alerting in production)critical- Severe errors risking data integrity
Scopes
Scopes buffer log entries in memory and output them as a grouped block when .end() is called. This makes it easier to trace multi-step operations in noisy console output.
const scope = logger.startScope("User signup");
scope.debug("Validating...");
scope.information("Signup complete");
scope.end();The Logger interface doesn't expose startScope because scoping is a root-level concern. When using Squide's useLogger(), the return type is Logger, so cast to RootLogger to access scope methods:
import { useLogger } from "@squide/firefly";
import type { RootLogger } from "@workleap/logging";
const logger = useLogger();
(logger as RootLogger).startScope("User signup");Chained Segments
Build complex log entries by chaining segments. A chain without a terminal log level method (.debug(), .error(), etc.) silently produces no output — this is the most common source of missing logs.
logger
.withText("Processing order")
.withObject({ orderId: 123 })
.withError(new Error("Failed"))
.error();
// Output: [error] Processing order { orderId: 123 } Error: FailedCommon Pitfalls
- Forgetting the terminal log method: Chained segments without
.debug(),.error(), etc. silently produce no output. - Not ending scopes: Scoped entries are buffered in memory and only flushed to the console when
.end()is called. Without it, the logs are silently lost. - Using `warning` for failures: Reserve
errorfor failures —warningis for non-critical issues. This distinction matters because production alerting and log filtering depend on accurate severity. - Logging sensitive data: Log entries may appear in LogRocket session replays and browser dev tools, so including credentials or PII creates compliance and security exposure.
- Missing error context: Without
withObject()for relevant data andwithError()for exceptions, error logs lack the information needed to reproduce issues in production.
Reference Guide
- `references/api.md` — Read when you need constructor signatures, the full method list (styled text, line breaks, withObject, withError), scope lifecycle API, or createCompositeLogger details.
- `references/patterns.md` — Read when setting up a logger from scratch, integrating with LogRocket, implementing scoped logging for features/operations, or conducting a PR review of logging code.


