Skip to content

Commit 15376ba

Browse files
author
Giedrius Grabauskas
committed
Initial source added.
1 parent 41e5fc9 commit 15376ba

27 files changed

+3537
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

@types/abstractions.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { LogLevel } from "./abstractions/log-level";
2+
export { MessageHandlerBase } from "./abstractions/message-handler-base";

@types/abstractions/log-level.d.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* Defines logging severity levels.
3+
*/
4+
export declare enum LogLevel {
5+
/**
6+
* Not used for writing log messages. Specifies that a logging category should not write any messages.
7+
*/
8+
None = 0,
9+
/**
10+
* Logs that describe an unrecoverable application or system crash,
11+
* or a catastrophic failure that requires immediate attention.
12+
*/
13+
Critical = 1,
14+
/**
15+
* Logs that highlight when the current flow of execution is stopped due to a failure.
16+
* These should indicate a failure in the current activity, not an application-wide failure.
17+
*/
18+
Error = 2,
19+
/**
20+
* Logs that highlight an abnormal or unexpected event in the application flow,
21+
* but do not otherwise cause the application execution to stop.
22+
*/
23+
Warning = 4,
24+
/**
25+
* Logs that track the general flow of the application. These logs should have long-term value.
26+
*/
27+
Information = 8,
28+
/**
29+
* Logs that are used for interactive investigation during development.
30+
* These logs should primarily contain information useful for debugging and have no long-term value.
31+
*/
32+
Debug = 16,
33+
/**
34+
* Logs that contain the most detailed messages. These messages may contain sensitive application data.
35+
* These messages are disabled by default and should never be enabled in a production environment.
36+
*/
37+
Trace = 32,
38+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { LogLevel } from "./log-level";
2+
export declare abstract class MessageHandlerBase {
3+
abstract HandleMessage(level: LogLevel, isLevelEnabled: boolean, timestamp: number, messages: any[]): void;
4+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import { LoggerConfiguration } from "./logger-configuration-builder";
2+
import { LogLevel } from "../abstractions/log-level";
3+
export declare class LoggerBuilder {
4+
private configuration;
5+
constructor(configuration?: LoggerConfiguration);
6+
/**
7+
* Writes a log entries with specified log level.
8+
*
9+
* @param level Entries will be written on this level.
10+
* @param messages Messages to be written.
11+
*/
12+
Log: (level: LogLevel, ...messages: any[]) => number;
13+
/**
14+
* Write a log entries with debug log level.
15+
*
16+
* @param messages Messages to be written.
17+
*/
18+
Debug: (...messages: any[]) => number;
19+
/**
20+
* Write a log entries with information log level.
21+
*
22+
* @param messages Messages to be written.
23+
*/
24+
Info: (...messages: any[]) => number;
25+
/**
26+
* Write a log entries with warning log level.
27+
*
28+
* @param messages Messages to be written.
29+
*/
30+
Warn: (...messages: any[]) => number;
31+
/**
32+
* Write a log entries with error log level.
33+
*
34+
* @param messages Messages to be written.
35+
*/
36+
Error: (...messages: any[]) => number;
37+
/**
38+
* Write a log entries with critical log level.
39+
*
40+
* @param messages Messages to be written.
41+
*/
42+
Critical: (...messages: any[]) => number;
43+
/**
44+
* Check if log level is enabled.
45+
*
46+
* @param level Log level value.
47+
*/
48+
IsEnabled(level: LogLevel): boolean;
49+
private log(level, ...messages);
50+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { MessageHandlerBase } from "../abstractions/message-handler-base";
2+
import { LogLevel } from "../abstractions/log-level";
3+
export interface LoggerConfiguration {
4+
WriteMessageHandler: MessageHandlerBase;
5+
LogLevel: LogLevel;
6+
CustomLogLevels?: boolean;
7+
}
8+
/**
9+
* Logger configuration builder.
10+
*/
11+
export declare class LoggerConfigurationBuilder {
12+
constructor(initConfiguration?: Partial<LoggerConfiguration>);
13+
private configuration;
14+
private defaultConfiguration();
15+
/**
16+
* Set custom message handler.
17+
*
18+
* @param handler Log messages handler.
19+
*/
20+
SetWriteMessageHandler(handler: MessageHandlerBase): this;
21+
/**
22+
* Set log level.
23+
*
24+
* @param logLevel LogLevel value or bit mask values.
25+
*/
26+
SetLogLevel(logLevel: LogLevel): this;
27+
/**
28+
* Set custom log levels.
29+
*
30+
* @param logLevels List of log level.
31+
*/
32+
SetCustomLogLevels(logLevels: LogLevel[]): this;
33+
/**
34+
* Build configuration result object.
35+
*/
36+
Build(): LoggerConfiguration;
37+
}

@types/handlers.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { ConsoleMessageHandler } from "./handlers/console-message-handler";
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { LogLevel } from "../abstractions/log-level";
2+
import { MessageHandlerBase } from "../abstractions/message-handler-base";
3+
export declare class ConsoleMessageHandler extends MessageHandlerBase {
4+
private useShortPrefix;
5+
constructor(useShortPrefix?: boolean);
6+
HandleMessage(level: LogLevel, isEnabled: boolean, timestamp: number, messages: any[]): void;
7+
}

@types/index.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export { LoggerBuilder } from "./builders/logger-builder";
2+
export { LoggerConfigurationBuilder, LoggerConfiguration } from "./builders/logger-configuration-builder";
3+
export { LogLevel } from "./abstractions/log-level";
4+
export { MessageHandlerBase } from "./abstractions/message-handler-base";
5+
import * as Handlers from "./handlers";
6+
export { Handlers };

@types/run.d.ts

Whitespace-only changes.

0 commit comments

Comments
 (0)