UNPKG

1.93 kBTypeScriptView Raw
1import SMTPTransport from 'nodemailer/lib/smtp-transport';
2export declare class BaseException<T> extends Error {
3 name: string;
4 json: T;
5 kind: string;
6 constructor(name: string, json?: T);
7}
8export declare class ClientException<T = object> extends BaseException<T> {
9}
10export declare class ExternalException<T = object> extends BaseException<T> {
11}
12export declare class Exception<T = object> extends BaseException<T> {
13}
14declare type Levels = keyof typeof levels;
15declare type LoggerStreamConfig = {
16 level: Levels;
17 type: 'file';
18 file: string;
19 rotate?: 'daily';
20} | {
21 level: Levels;
22 type: 'stdout';
23} | {
24 level: Levels;
25 type: 'email';
26 options: SMTPTransport.Options;
27 from: string;
28 to: string;
29 subject: {
30 start: string;
31 error: string;
32 };
33};
34export interface LoggerSettings {
35 streams: LoggerStreamConfig[];
36}
37export declare class Logger {
38 protected streams: LoggerStream[];
39 constructor(settings: LoggerSettings);
40 protected setSettings(settings: LoggerSettings): void;
41 protected log(type: Levels, name: string, json?: object): void;
42 info(name: string, json?: object): void;
43 clientError(name: string, json?: object): void;
44 warn(name: string, json?: object): void;
45 trace(name: string, json?: object): void;
46 error(name: string | Error, json?: object): void;
47 external(name: string, json?: object): void;
48}
49declare abstract class LoggerStream {
50 level: number;
51 constructor(level: number);
52 abstract write(id: string, parentId: string, date: Date, type: Levels, name: string, json: object): void;
53}
54declare const levels: {
55 error: number;
56 warn: number;
57 external: number;
58 info: number;
59 clientError: number;
60 trace: number;
61};
62export declare const logger: Logger;
63export declare function setLoggerSettings(settings: LoggerSettings): void;
64export {};
65//# sourceMappingURL=logger.d.ts.map
\No newline at end of file