Skip to main content

Class: abstract BaseContainer

Defined in: src/lib/logger/components/base.ts:30 Abstract base class for all logging containers in the Maxim SDK. Provides common functionality for managing container lifecycle, metadata, tags, and communication with the log writer. All specific container types extend this class. BaseContainer

Example

// BaseContainer is not instantiated directly, but through subclasses
const session = new Session({ id: 'session-1', name: 'User Chat' }, writer);
session.addTag('user_id', '12345');
session.addMetadata({ context: 'support_chat' });

Extended by

Constructors

Constructor

new BaseContainer(entity, config, writer): BaseContainer
Defined in: src/lib/logger/components/base.ts:48 Creates a new base container instance.

Parameters

entity
Entity The entity type this container represents
config
BaseConfig Configuration for the container
writer
LogWriter Log writer instance for committing changes

Returns

BaseContainer

Throws

When the provided ID contains invalid characters (only alphanumeric, hyphens, and underscores allowed; only throws if you have raiseExceptions config set to true)

Accessors

id

Get Signature

get id(): string
Defined in: src/lib/logger/components/base.ts:80 Gets the unique identifier for this container.
Returns
string The container’s unique ID

Methods

addMetadata()

addMetadata(metadata): void
Defined in: src/lib/logger/components/base.ts:124 Adds metadata to this container for additional context and debugging. Any data type could be added as the value in the metadata record.

Parameters

metadata
Record<string, unknown> Key-value pairs of metadata

Returns

void void

Example

container.addMetadata({
  requestId: 'req-123',
  userAgent: 'Mozilla/5.0...',
  processingTime: 1500
});

addTag()

addTag(key, value): void
Defined in: src/lib/logger/components/base.ts:94 Adds a tag to this container for categorization and filtering.

Parameters

key
string The tag key
value
string The tag value

Returns

void void

Example

container.addTag('environment', 'production');
container.addTag('user_type', 'premium');

data()

data(): any
Defined in: src/lib/logger/components/base.ts:191 Returns the current data state of this container.

Returns

any The container’s data.

end()

end(): void
Defined in: src/lib/logger/components/base.ts:163 Marks this container as ended and records the end timestamp.

Returns

void void

Example

// End a container when processing is complete
container.end();

addMetadata_()

static addMetadata_(writer, entity, id, metadata): void
Defined in: src/lib/logger/components/base.ts:144 Static method to add metadata to any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
metadata
Record<string, unknown> The metadata to add

Returns

void void

addTag_()

static addTag_(writer, entity, id, key, value): void
Defined in: src/lib/logger/components/base.ts:108 Static method to add a tag to any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
key
string The tag key
value
string The tag value

Returns

void void

end_()

static end_(writer, entity, id, data?): void
Defined in: src/lib/logger/components/base.ts:177 Static method to end any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
data?
any Optional additional data to include with the end event

Returns

void void