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
