unified-logging
Universal, minimalist logging for TypeScript
The core of unified-logging is the Logger
interface for TypeScript, designed to be used in client code - especially libraries - without depending on a specific logging technology.
Installation
npm install @giancosta86/unified-logging
yarn add @giancosta86/unified-logging
Usage
All the recommended features are exported by the index file - and can be imported as usual:
import {...} from @giancosta86/unified-logging
Logger
The Logger
interface provides just a few core methods:
-
debug(message: string)
-
info(message: string)
-
warn(message: string)
-
error(message: string)
This is all you need to start working with the library: for example, you might declare a constructor expecting a Logger
instance among other options - thus letting clients choose the actual implementation.
ArrayLogger
Class implementing Logger
by storing the received messages into string[]
fields inspectable via read-only properties - for example, debugMessages
. Especially useful for testing.
CompositeLogger
Logger
implementation that forwards each message to all of its sub-loggers.
Compatibility
This library is currently tested with:
It is because of TypeScript's structural typing that the Logger
interface actually supports any logger instance providing its methods - with no need for explicit implementation.