boxlang-core-dev-logging

Centralize BoxLang logging with LoggingService and BoxLangLogger.

Updated Apr 10, 2026
One-click install
npx skills add https://github.com/ortus-boxlang/skills --skill boxlang-core-dev-logging
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: boxlang-core-dev-logging
Source: https://github.com/ortus-boxlang/skills/tree/main/boxlang-core-development/logging
Command: npx skills add https://github.com/ortus-boxlang/skills --skill boxlang-core-dev-logging

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Centralized logging in BoxLang through the LoggingService and BoxLangLogger eliminates ad-hoc logging, enforcing consistent practices across modules and components.

Core Features & Use Cases

  • Pre-configured common loggers (RUNTIME_LOGGER, MODULES_LOGGER, ASYNC_LOGGER, SCHEDULER_LOGGER, etc.) for immediate use.
  • Create named loggers that write to dedicated log files or scopes.
  • Use parameterized messages to avoid string concatenation and improve performance.
  • Access loggers from IBoxContext, BaseInterceptor, BaseScheduler, and other BoxLang components.
  • Configure global and per-logger settings via boxlang.json.

Quick Start

Create a logger via the LoggingService and start emitting BoxLangLogger messages.

Frequently Asked Questions about boxlang-core-dev-logging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure BoxLang logging globally for my application?

Parameterized messages in BoxLang logging avoid string concatenation, improving runtime performance. They allow you to pass dynamic arguments directly to the logger, which handles interpolation efficiently only if the log level is enabled.

Can I access BoxLang loggers from interceptors and schedulers?

You can access BoxLang loggers contextually from IBoxContext, BaseInterceptor, and BaseScheduler components. This context-aware access ensures components retrieve the correct logger instance without manually passing dependencies.

What is the best way to create named loggers writing to dedicated files in BoxLang?

Named loggers are created through the BoxLang LoggingService to write to dedicated log files or scopes. This enforces consistent logging practices across modules while keeping component output isolated for easier debugging.

Why should I use a centralized logging service instead of ad-hoc logging in BoxLang?

A centralized logging service eliminates ad-hoc logging by enforcing consistent practices across all modules. It standardizes parameterized messages, logger configuration, and context-aware access to prevent fragmented log output.