Simple JavaScript logger written in TypeScript that can be used in browser or node application.
The package is most useful when used with TypeScript.
npm install simplr-loggerimport { LoggerBuilder } from "simplr-logger"; const logger = new LoggerBuilder();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);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 }] });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);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");logger.Log(LogLevel.Information, "Info message"); logger.Log(LogLevel.Critical, new Error("Critical error"));// Using old configuration logger.UpdateConfiguration(builder => builder.SetPrefix("[new prefix]").Build()); // Or with default configuration logger.UpdateConfiguration(builder => builder.SetPrefix("[new prefix]").Build(), false);| Name | Value | Description |
|---|---|---|
| None | 0 | Not used for writing log messages. Specifies that logger 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. |
| 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.
Released under the MIT license.