ObjectStackObjectStack

Logging

Logging protocol schemas

Logging Protocol - Comprehensive Observability Logging

Unified logging protocol that combines:

  • Basic kernel logging (LoggerConfig)

  • Enterprise-grade features (LoggingConfig)

  • Multiple log destinations (file, console, external services)

  • Structured logging with enrichment

  • Log aggregation and forwarding

  • Integration with external log management systems

Source: packages/spec/src/system/logging.zod.ts

TypeScript Usage

import { ConsoleDestinationConfig, ExtendedLogLevel, ExternalServiceDestinationConfig, FileDestinationConfig, HttpDestinationConfig, LogDestination, LogDestinationType, LogEnrichmentConfig, LogEntry, LogFormat, LogLevel, LoggerConfig, LoggingConfig, StructuredLogEntry } from '@objectstack/spec/system';
import type { ConsoleDestinationConfig, ExtendedLogLevel, ExternalServiceDestinationConfig, FileDestinationConfig, HttpDestinationConfig, LogDestination, LogDestinationType, LogEnrichmentConfig, LogEntry, LogFormat, LogLevel, LoggerConfig, LoggingConfig, StructuredLogEntry } from '@objectstack/spec/system';

// Validate data
const result = ConsoleDestinationConfig.parse(data);

ConsoleDestinationConfig

Console destination configuration

Properties

PropertyTypeRequiredDescription
streamEnum<'stdout' | 'stderr'>
colorsboolean
prettyPrintboolean

ExtendedLogLevel

Extended log severity level

Allowed Values

  • trace
  • debug
  • info
  • warn
  • error
  • fatal

ExternalServiceDestinationConfig

External service destination configuration

Properties

PropertyTypeRequiredDescription
endpointstringoptional
regionstringoptional
credentialsObjectoptional
logGroupstringoptional
logStreamstringoptional
indexstringoptional
configRecord<string, any>optional

FileDestinationConfig

File destination configuration

Properties

PropertyTypeRequiredDescription
pathstringLog file path
rotationObjectoptional
encodingstring
appendboolean

HttpDestinationConfig

HTTP destination configuration

Properties

PropertyTypeRequiredDescription
urlstringHTTP endpoint URL
methodEnum<'POST' | 'PUT'>
headersRecord<string, string>optional
authObjectoptional
batchObjectoptional
retryObjectoptional
timeoutinteger

LogDestination

Log destination configuration

Properties

PropertyTypeRequiredDescription
namestringDestination name (snake_case)
typeEnum<'console' | 'file' | 'syslog' | 'elasticsearch' | 'cloudwatch' | 'stackdriver' | 'azure_monitor' | 'datadog' | 'splunk' | 'loki' | 'http' | 'kafka' | 'redis' | 'custom'>Destination type
levelEnum<'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'>Extended log severity level
enabledboolean
consoleObjectoptionalConsole destination configuration
fileObjectoptionalFile destination configuration
httpObjectoptionalHTTP destination configuration
externalServiceObjectoptionalExternal service destination configuration
formatEnum<'json' | 'text' | 'pretty'>
filterIdstringoptionalFilter function identifier

LogDestinationType

Log destination type

Allowed Values

  • console
  • file
  • syslog
  • elasticsearch
  • cloudwatch
  • stackdriver
  • azure_monitor
  • datadog
  • splunk
  • loki
  • http
  • kafka
  • redis
  • custom

LogEnrichmentConfig

Log enrichment configuration

Properties

PropertyTypeRequiredDescription
staticFieldsRecord<string, any>optionalStatic fields added to every log
dynamicEnrichersstring[]optionalDynamic enricher function IDs
addHostnameboolean
addProcessIdboolean
addEnvironmentboolean
addTimestampFormatsObjectoptional
addCallerboolean
addCorrelationIdsboolean

LogEntry

Properties

PropertyTypeRequiredDescription
timestampstringISO 8601 timestamp
levelEnum<'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'silent'>Log severity level
messagestringLog message
contextRecord<string, any>optionalStructured context data
errorRecord<string, any>optionalError object if present
traceIdstringoptionalDistributed trace ID
spanIdstringoptionalSpan ID
servicestringoptionalService name
componentstringoptionalComponent name (e.g. plugin id)

LogFormat

Log output format

Allowed Values

  • json
  • text
  • pretty

LogLevel

Log severity level

Allowed Values

  • debug
  • info
  • warn
  • error
  • fatal
  • silent

LoggerConfig

Properties

PropertyTypeRequiredDescription
namestringoptionalLogger name identifier
levelEnum<'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'silent'>Log severity level
formatEnum<'json' | 'text' | 'pretty'>Log output format
redactstring[]Keys to redact from log context
sourceLocationbooleanInclude file and line number
filestringoptionalPath to log file
rotationObjectoptional

LoggingConfig

Logging configuration

Properties

PropertyTypeRequiredDescription
namestringConfiguration name (snake_case, max 64 chars)
labelstringDisplay label
enabledboolean
levelEnum<'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'>Extended log severity level
defaultObjectoptionalDefault logger configuration
loggersRecord<string, Object>optionalNamed logger configurations
destinationsObject[]Log destinations
enrichmentObjectoptionalLog enrichment configuration
redactstring[]Fields to redact
samplingObjectoptional
bufferObjectoptional
performanceObjectoptional

StructuredLogEntry

Structured log entry

Properties

PropertyTypeRequiredDescription
timestampstringISO 8601 timestamp
levelEnum<'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'>Log severity level
messagestringLog message
contextRecord<string, any>optionalStructured context
errorObjectoptionalError details
traceObjectoptionalDistributed tracing context
sourceObjectoptionalSource information
hostObjectoptionalHost information
environmentstringoptionalEnvironment (e.g., production, staging)
userObjectoptionalUser context
requestObjectoptionalRequest context
labelsRecord<string, string>optionalCustom labels
metadataRecord<string, any>optionalAdditional metadata

On this page