Skip to content

Commit 61919b3

Browse files
committed
(#371) Added first definition of log provider interface
1 parent 2d47ba2 commit 61919b3

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

Diff for: lib/provider/io/log-provider.class.ts

Whitespace-only changes.

Diff for: lib/provider/log-provider.interface.ts

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
export type LogFunction = (message: string, data?: {}) => void;
2+
export type ErrorLogFunction = (error: Error, data?: {}) => void;
3+
4+
export enum LogLevel {
5+
TRACE,
6+
DEBUG,
7+
INFO,
8+
WARN,
9+
ERROR
10+
}
11+
12+
export interface ConsoleLogger {
13+
trace(message?: any, ...optionalParams: any[]): void;
14+
debug(message?: any, ...optionalParams: any[]): void;
15+
info(message?: any, ...optionalParams: any[]): void;
16+
warn(message?: any, ...optionalParams: any[]): void;
17+
error(message?: any, ...optionalParams: any[]): void;
18+
}
19+
20+
export type ExternalLogger = ConsoleLogger;
21+
22+
/**
23+
* LogProviderInterface to implement when adding a new logging provider for internal use
24+
*
25+
* ATTENTION: Please keep in mind that none of the trace, debug, info, warn or error should cause runtime errors.
26+
* Logging should default to a no-op in case it's not properly set up
27+
*/
28+
export interface LogProviderInterface {
29+
trace: LogFunction;
30+
debug: LogFunction;
31+
info: LogFunction;
32+
warn: LogFunction;
33+
error: ErrorLogFunction;
34+
35+
/**
36+
* connectLogger is meant to wire up an {@link ExternalLogger} to the internal logging provider
37+
* @param logger The {@link ExternalLogger} to connect
38+
*/
39+
connectLogger(logger: ExternalLogger): void;
40+
41+
log(level: LogLevel, message: string, data?: {}): void;
42+
}

0 commit comments

Comments
 (0)