1.1.0 • Published 3 years ago

@chkt/onceupon v1.1.0

Weekly downloads
132
License
MIT
Repository
github
Last release
3 years ago

Tests Version Node Dependencies Licence Language Size

onceupon

Logging without compromises

onceupon is a fully configurable logging system for all javascript platforms. It is written in typescript. All major components use Promises.

Install

npm install @chkt/onceupon

Use

Initialize the logger by importing the default export and calling it:

import { createLogger, log_level } from '@chkt/onceupon';

const logger = createLogger();

async () => {
  await logger
    .message('foo')
    .value([1, 2, 3], log_level.warn)
    .failure(new Error(), log_level.error, 'reporting api')
    .settle();
}

The initializer supports extensive configuration:

import { createLogger, log_level } from '@chkt/onceupon';
import { getTime} from '@chkt/onceupon/dist/time';
import { inferType } from '@chkt/onceupon/dist/type';
import { Parsers } from '@chkt/onceupon/dist/parse';
import { attachEmitter } from '@chkt/onceupon/dist/aggregate';
import { decorateTokens } from '@chkt/onceupon/dist/decorate';
import { handleLog } from '@chkt/onceupon/dist/handler';

const logger = createLogger({
  threshold : log_level,
  tags : string,
  time : getTime,
  infer : inferType,
  parsers : Parsers,
  aggregate : attachEmitter,
  decorate : decorateTokens,
  handle : handleLog
});

Public api

const enum log_level {
  fatal,
  error,
  warn,
  notice,
  info,
  verbose,
  debug
}

interface LoggerConfig {
  readonly threshold : log_level;
  readonly tags : string;
  readonly maxDepth : number;
  readonly maxBytes : number;
  readonly tailBytes : number;
  readonly infer : inferType;
  readonly parsers : Parsers;
  readonly time : getTime;
  readonly aggregate : attachEmitter;
  readonly decorate : decorateTokens;
  readonly handle : handleLog;
}

interface Logger {
  message(message:string|Composition, level?:log_level, tags?:string) : Logger;
  value(value:any, level?:log_level, tags?:string) : Logger;
  failure(reason:any, level?:log_level, tags?:string) : Logger;
  create(value:any, opts:ParseOptions) : Promise<Log>;
  submit(data:Log) : Logger;
  threshold(threshold:log_level) : Logger;
  settings(settings:Partial<LoggerConfig>) : Logger;
  settle() : Promise<void>;
}

type createLogger = (settings?:Partial<LoggerConfig>) => Logger;
1.1.0

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

1.0.0-beta.2

4 years ago

1.0.0-beta.1

4 years ago

1.0.0-alpha.20

4 years ago

1.0.0-alpha.19

4 years ago

1.0.0-alpha.18

4 years ago

1.0.0-alpha.17

4 years ago

1.0.0-alpha.16

4 years ago

1.0.0-alpha.15

4 years ago

1.0.0-alpha.14

4 years ago

1.0.0-alpha.13

4 years ago

1.0.0-alpha.12

4 years ago

1.0.0-alpha.11

4 years ago

1.0.0-alpha.10

5 years ago

1.0.0-alpha.9

5 years ago

1.0.0-alpha.8

5 years ago

1.0.0-alpha.7

5 years ago

1.0.0-alpha.6

5 years ago

1.0.0-alpha.5

5 years ago

1.0.0-alpha.4

5 years ago

1.0.0-alpha.3

5 years ago

1.0.0-alpha.2

5 years ago

1.0.0-alpha.1

5 years ago