87 lines
3.5 KiB
TypeScript
87 lines
3.5 KiB
TypeScript
export type LogLevel = 'TRACE' | 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
|
|
export type LogMetadata = Record<string | symbol, any>;
|
|
/**
|
|
* Implement this interface in order to customize worker logging
|
|
*/
|
|
export interface Logger {
|
|
log(level: LogLevel, message: string, meta?: LogMetadata): any;
|
|
trace(message: string, meta?: LogMetadata): any;
|
|
debug(message: string, meta?: LogMetadata): any;
|
|
info(message: string, meta?: LogMetadata): any;
|
|
warn(message: string, meta?: LogMetadata): any;
|
|
error(message: string, meta?: LogMetadata): any;
|
|
}
|
|
/**
|
|
* Possible values of the `sdkComponent` meta attributes on log messages. This
|
|
* attribute indicates which subsystem emitted the log message; this may for
|
|
* example be used to implement fine-grained filtering of log messages.
|
|
*
|
|
* Note that there is no guarantee that this list will remain stable in the
|
|
* future; values may be added or removed, and messages that are currently
|
|
* emitted with some `sdkComponent` value may use a different value in the future.
|
|
*/
|
|
export declare enum SdkComponent {
|
|
/**
|
|
* Component name for messages emited from Workflow code, using the {@link Workflow context logger|workflow.log}.
|
|
* The SDK itself never publishes messages with this component name.
|
|
*/
|
|
workflow = "workflow",
|
|
/**
|
|
* Component name for messages emited from an activity, using the {@link activity context logger|Context.log}.
|
|
* The SDK itself never publishes messages with this component name.
|
|
*/
|
|
activity = "activity",
|
|
/**
|
|
* Component name for messages emited from a Nexus Operation Handler, using the Nexus context logger.
|
|
* The SDK itself never publishes messages with this component name.
|
|
*/
|
|
nexus = "nexus",
|
|
/**
|
|
* Component name for messages emited from a Temporal Worker instance.
|
|
*
|
|
* This notably includes:
|
|
* - Issues with Worker or runtime configuration, or the JS execution environment;
|
|
* - Worker's, Activity's, and Workflow's lifecycle events;
|
|
* - Workflow Activation and Activity Task processing events;
|
|
* - Workflow bundling messages;
|
|
* - Sink processing issues.
|
|
*/
|
|
worker = "worker",
|
|
/**
|
|
* Component name for all messages emitted by the Rust Core SDK library.
|
|
*/
|
|
core = "core"
|
|
}
|
|
/**
|
|
* @internal
|
|
* @hidden
|
|
*/
|
|
export type LogMetaOrFunc = LogMetadata | (() => LogMetadata);
|
|
/**
|
|
* A logger implementation that adds metadata before delegating calls to a parent logger.
|
|
*
|
|
* @internal
|
|
* @hidden
|
|
*/
|
|
export declare class LoggerWithComposedMetadata implements Logger {
|
|
private readonly parentLogger;
|
|
private readonly contributors;
|
|
/**
|
|
* Return a {@link Logger} that adds metadata before delegating calls to a parent logger.
|
|
*
|
|
* New metadata may either be specified statically as a delta object, or as a function evaluated
|
|
* every time a log is emitted that will return a delta object.
|
|
*
|
|
* Some optimizations are performed to avoid creating unnecessary objects and to keep runtime
|
|
* overhead associated with resolving metadata as low as possible.
|
|
*/
|
|
static compose(logger: Logger, metaOrFunc: LogMetaOrFunc): Logger;
|
|
constructor(parentLogger: Logger, contributors: LogMetaOrFunc[]);
|
|
log(level: LogLevel, message: string, extraMeta?: LogMetadata): void;
|
|
trace(message: string, extraMeta?: LogMetadata): void;
|
|
debug(message: string, extraMeta?: LogMetadata): void;
|
|
info(message: string, extraMeta?: LogMetadata): void;
|
|
warn(message: string, extraMeta?: LogMetadata): void;
|
|
error(message: string, extraMeta?: LogMetadata): void;
|
|
}
|