-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.d.ts
94 lines (75 loc) · 2.26 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
declare module '@17media/node-logger' {
type LoggerLevel = number;
export namespace Level {
export const ALL: LoggerLevel;
export const DEBUG: LoggerLevel;
export const INFO: LoggerLevel;
export const WARN: LoggerLevel;
export const ERROR: LoggerLevel;
export const FATAL: LoggerLevel;
export const OFF: LoggerLevel;
}
export interface LoggerConfig {
base?: BaseLoggerConfig;
Slack?: SlackLoggerConfig;
Fluentd?: FluentdLoggerConfig;
Console?: OptionalLoggerConfig;
}
export interface OptionalLoggerConfig {
logLevel?: LoggerLevel;
}
export interface BaseLoggerConfig extends OptionalLoggerConfig {
project: string;
environment: string;
}
export interface SlackLoggerConfig extends OptionalLoggerConfig {
slackToken: string;
slackChannel;
}
export interface FluentdLoggerConfig extends OptionalLoggerConfig {
collectorUrl: string;
}
export interface LoggerWrapper {
(label: string): WrappedLogger;
}
export interface LevelLogger {
(...args): void;
}
export interface WrappedLogger {
(level: number): LevelLogger;
fatal: LevelLogger;
error: LevelLogger;
warn: LevelLogger;
info: LevelLogger;
debug: LevelLogger;
log: LevelLogger;
}
export function createLogger(config: LoggerConfig): LoggerWrapper;
export default createLogger;
export class Logger {
constructor(config: LoggerConfig);
Label(label: string): { Log: (level: number, message: string) => void };
Log(level: number, message: string, label: string): Promise<void>;
}
class ChildLogger {
constructor(config: BaseLoggerConfig);
IsConfigValid(): boolean;
ShouldLog(): boolean;
Log(level: number, message: string, label: string): void;
}
export class Slack extends ChildLogger {
Log(level: number, message: string, label: string): Promise<void>;
}
export class Fluentd extends ChildLogger {
Log(level: number, message: string, label: string): Promise<void>;
}
export class LogMessage {
constructor(message: string, fields: object);
get(fieldName: string): any;
toString(): string;
toObject(): object;
}
export class ErrorMessage extends LogMessage {
constructor(message: string, err: any, fields: object);
}
}