diff options
| author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2018-12-19 19:16:45 +0100 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2018-12-19 13:16:45 -0500 |
| commit | 6624584dd476f0f261376e7c625a318049d2bd83 (patch) | |
| tree | ea59dade4e002f69e28df6ec696a86a37fc95821 /logging/logger.ts | |
| parent | 700b4ce0d99dca02fe192c8722ab1bb7a33dc709 (diff) | |
Add logging module (denoland/deno_std#33)
Original: https://github.com/denoland/deno_std/commit/25b88bcf8c260865d2b6b68f539c4772bac095ee
Diffstat (limited to 'logging/logger.ts')
| -rw-r--r-- | logging/logger.ts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/logging/logger.ts b/logging/logger.ts new file mode 100644 index 000000000..733b1fd09 --- /dev/null +++ b/logging/logger.ts @@ -0,0 +1,44 @@ +import { LogLevel, getLevelByName, getLevelName } from "./levels.ts"; + +export class Logger { + level: number; + levelName: string; + handlers: any[]; + + constructor(levelName, handlers) { + this.level = getLevelByName(levelName); + this.levelName = levelName; + this.handlers = handlers; + } + + _log(level, ...args) { + this.handlers.forEach(handler => { + handler.handle(level, ...args); + }); + } + + log(level, ...args) { + if (this.level > level) return; + return this._log(level, ...args); + } + + debug(...args) { + return this.log(LogLevel.DEBUG, ...args); + } + + info(...args) { + return this.log(LogLevel.INFO, ...args); + } + + warning(...args) { + return this.log(LogLevel.WARNING, ...args); + } + + error(...args) { + return this.log(LogLevel.ERROR, ...args); + } + + critical(...args) { + return this.log(LogLevel.CRITICAL, ...args); + } +} |
