Logger Types
This document details all the type definitions used in the Vercube logging system.
Core Types
LogLevel
typescript
type LogLevel = 'debug' | 'info' | 'warn' | 'error';
The LogLevel
type defines the four supported log levels in Vercube:
debug
: Detailed debugging informationinfo
: General operational informationwarn
: Warning messageserror
: Error messages
LogMessage
typescript
interface LogMessage {
level: LogLevel;
message: string;
args: any[];
timestamp: Date;
}
The LogMessage
interface represents a log message with:
level
: The log level of the messagemessage
: The main message textargs
: Additional arguments passed to the log methodtimestamp
: When the message was created
Configuration Types
LoggerOptions
typescript
interface LoggerOptions {
logLevel?: LogLevel;
providers?: ProviderConfig[];
}
The LoggerOptions
interface defines the configuration options for the logger:
logLevel
: The global log level (defaults to 'info')providers
: Array of provider configurations
ProviderConfig
typescript
interface ProviderConfig {
name: string;
provider: new () => LoggerProvider;
logLevel?: LogLevel;
options?: ProviderOptions;
}
The ProviderConfig
interface defines how to configure a provider:
name
: Unique identifier for the providerprovider
: The provider class constructorlogLevel
: Provider-specific log leveloptions
: Provider-specific configuration options
ProviderOptions
typescript
interface ProviderOptions {
[key: string]: any;
}
The ProviderOptions
interface is a flexible type that allows providers to define their own configuration options.
Provider Types
ConsoleProviderOptions
typescript
interface ConsoleProviderOptions extends ProviderOptions {
colors?: boolean;
timestamp?: boolean;
timestampFormat?: string;
}
Options specific to the ConsoleProvider:
colors
: Enable color output (default: true)timestamp
: Include timestamps (default: true)timestampFormat
: Custom timestamp format
JSONProviderOptions
typescript
interface JSONProviderOptions extends ProviderOptions {
pretty?: boolean;
timestamp?: boolean;
timestampFormat?: string;
}
Options specific to the JSONProvider:
pretty
: Pretty print JSON (default: false)timestamp
: Include timestamps (default: true)timestampFormat
: Custom timestamp format
Utility Types
LogFunction
typescript
type LogFunction = (message: string, ...args: any[]) => void;
The LogFunction
type represents a logging function that takes a message and optional arguments.
ProviderConstructor
typescript
type ProviderConstructor = new () => LoggerProvider;
The ProviderConstructor
type represents a constructor for a LoggerProvider class.
Type Usage Examples
Basic Logger Configuration
typescript
const options: LoggerOptions = {
logLevel: 'debug',
providers: [
{
name: 'console',
provider: ConsoleProvider,
logLevel: 'info',
options: {
colors: true,
timestamp: true
}
}
]
};
Custom Provider Options
typescript
interface CustomProviderOptions extends ProviderOptions {
maxFileSize: number;
rotationInterval: number;
}
class CustomProvider extends LoggerProvider {
private options: CustomProviderOptions = {
maxFileSize: 1024 * 1024, // 1MB
rotationInterval: 24 * 60 * 60 * 1000 // 24 hours
};
}
Type Safety
The type system ensures:
- Only valid log levels can be used
- Provider configurations are properly structured
- Provider options are type-safe
- Log messages have the required properties
See Also
- Logger - The main Logger class
- Providers - Available log providers
- Advanced Topics - Advanced usage patterns