simplr-logger
v1.0.1
Published
Simple JavaScript logger written in TypeScript that can be used in browser or node application.
Downloads
486
Readme
Simplr Logger
Simple JavaScript logger written in TypeScript that can be used in browser or node application.
The package is most useful when used with TypeScript.
Get started
npm install simplr-logger
Building logger
With default configuration
import { LoggerBuilder } from "simplr-logger";
const logger = new LoggerBuilder();
With configuration builder
import { LoggerBuilder, LoggerConfigurationBuilder, LogLevel } from "simplr-logger";
import { FileMessageHandler, ConsoleMessageHandler } from "simplr-logger/handlers";
const config = new LoggerConfigurationBuilder()
.SetDefaultLogLevel(LogLevel.Trace)
.AddWriteMessageHandlers([
{ Handler: new ConsoleMessageHandler() },
{ Handler: new FileMessageHandler("./logs.txt") }]
)
.Build();
const logger = new LoggerBuilder(config);
With simple object
import { LoggerBuilder, LogLevel, ConsoleMessageHandler } from "simplr-logger";
const logger = new LoggerBuilder({
DefaultLogLevel: {
LogLevel: LogLevel.Trace,
LogLevelIsBitMask: false
},
WriteMessageHandlers: [{
Handler: new ConsoleMessageHandler(),
LogLevel: LogLevel.Critical | LogLevel.Debug,
LogLevelIsBitMask: true
}]
});
Creating logger handler
import { MessageHandlerBase, LogLevel, LoggerBuilder, LoggerConfigurationBuilder } from "simplr-logger";
class MyMessageHandler extends MessageHandlerBase {
public HandleMessage(level: LogLevel, timestamp: number, messages: any[]): void {
console.log(...messages);
}
}
const config = new LoggerConfigurationBuilder()
.AddWriteMessageHandler({ Handler: new MyMessageHandler(), LogLevel: LogLevel.Trace })
.Build();
const logger = new LoggerBuilder(config);
Using logger
Logging with methods
logger.Critical("Critical", "message");
logger.Debug("Debug", "message");
logger.Error("Error", "message");
logger.Info("Info", "message");
logger.Warn("Warn", "message");
logger.Trace("message", "with trace");
Logging with log level
logger.Log(LogLevel.Information, "Info message");
logger.Log(LogLevel.Critical, new Error("Critical error"));
Updating configuration
// Using old configuration
logger.UpdateConfiguration(builder => builder.SetPrefix("[new prefix]").Build());
// Or with default configuration
logger.UpdateConfiguration(builder => builder.SetPrefix("[new prefix]").Build(), false);
API
LogLevel
| Name | Value | Description | |-------------|:-----:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | None | 0 | Not used for writing log messages. Specifies that a logging category should not write any messages. | | Critical | 1 | Logs that describe an unrecoverable application or system crash, or a catastrophic failure that requires immediate attention. | | | Error | 2 | Logs that highlight when the current flow of execution is stopped due to a failure. These should indicate a failure in the current activity, not an application-wide failure. | | Warning | 4 | Logs that highlight an abnormal or unexpected event in the application flow, but do not otherwise cause the application execution to stop. | | Information | 8 | Logs that track the general flow of the application. These logs should have long-term value. | | Debug | 16 | Logs that are used for interactive investigation during development. These logs should primarily contain information useful for debugging and have no long-term value. | | Trace | 32 | Logs that contain the most detailed messages. These messages may contain sensitive application data. These messages are disabled by default and should never be enabled in a production environment. |
Configuration
| Name | Default value | Description |
|-----------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| WriteMessageHandlers | [{ Handler: new ConsoleMessageHandler() }]
| Message handlers list. ⁽¹⁾ |
| DefaultLogLevel | { LogLevel: LogLevel.Warning, LogLevelIsBitMask: false }
| Log level or log levels in bit mask value. |
| Prefix | undefined
| Custom message, which will be injected into the start of messages. |
(1)
- The default value is only available if configuration property is not set.
License
Released under the MIT license.