# extra-logger

> ```sh npm install --save extra-logger # or yarn add extra-logger ```

Latest version **0.8.0** (published 2025-03-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install extra-logger
pnpm add extra-logger
yarn add extra-logger
bun add extra-logger
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.8.0 |
| Published | 2025-03-13 |
| First published | 2021-03-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=16 |
| Dependencies | 2 |
| Unpacked size | 49.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | BlackGlory |
| Maintainers | black_glory |

## Links

- npm: https://www.npmjs.com/package/extra-logger
- Repository: https://github.com/BlackGlory/extra-logger
- Homepage: https://github.com/BlackGlory/extra-logger#readme
- Issues: https://github.com/BlackGlory/extra-logger/issues
- npm.io page: https://npm.io/package/extra-logger

## Dependencies (2)

- [chalk](https://npm.io/package/chalk.md) ^5.3.0
- [@blackglory/prelude](https://npm.io/package/@blackglory/prelude.md) ^0.3.3

## Recent versions

- 0.8.0 (latest) — 2025-03-13
- 0.7.2 — 2023-07-16
- 0.7.1 — 2023-06-10
- 0.7.0 — 2023-04-07
- 0.6.9 — 2022-08-01
- 0.6.8 — 2022-04-21
- 0.6.7 — 2022-04-20
- 0.6.6 — 2022-03-27
- 0.6.5 — 2022-03-19
- 0.6.4 — 2022-03-03
- 0.6.3 — 2022-03-03
- 0.6.2 — 2022-02-28
- 0.6.1 — 2022-02-28
- 0.6.0 — 2022-02-28
- 0.5.5 — 2021-07-03
- … 15 more at https://npm.io/package/extra-logger/versions

## README

# extra-logger
## Install
```sh
npm install --save extra-logger
# or
yarn add extra-logger
```

## API
```ts
enum Level {
  Trace
, Debug
, Info
, Warn
, Error
, Fatal
, None
}

interface ITransport {
  send(message: IMessage): void
}

interface IMessage {
  level: Level
  timestamp: number
  message: string
  namespace?: string
  elapsedTime?: number
}
```

### Logger
```ts
interface ILoggerOptions {
  level: Level
  transport: ITransport
  namespace?: string
}

class Logger {
  constructor(options: ILoggerOptions)

  trace(message: string | Getter<string>, elapsedTime?: number): void
  traceAsync(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , elapsedTime?: number
  ): Promise<void>

  info(message: string | Getter<string>, elapsedTime?: number): void
  infoAsync(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , elapsedTime?: number
  ): Promise<void>

  debug(message: string | Getter<string>, elapsedTime?: number): void
  debugAsync(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , elapsedTime?: number
  ): Promise<void>

  warn(message: string | Getter<string>, elapsedTime?: number): void
  warnAsync(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , elapsedTime?: number
  ): Promise<void>

  error(message: string | Getter<string>, elapsedTime?: number): void
  errorAsync(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , elapsedTime?: number
  ): Promise<void>

  fatal(message: string | Getter<string>, elapsedTime?: number): void
  fatalAsync(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , elapsedTime?: number
  ): Promise<void>

  traceTime<T>(
    message: string | Getter<string>
  , expression: () => T
  ): T
  traceTimeAsync<T>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , expression: () => Awaitable<T>
  ): Promise<T>

  infoTime<T>(
    message: string | Getter<string>
  , expression: () => T
  ): T
  infoTimeAsync<T>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , expression: () => Awaitable<T>
  ): Promise<T>

  debugTime<T>(
    message: string | Getter<string>
  , expression: () => T
  ): T
  debugTimeAsync<T>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , expression: () => Awaitable<T>
  ): Promise<T>

  warnTime<T>(
    message: string | Getter<string>
  , expression: () => T
  ): T
  warnTimeAsync<T>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , expression: () => Awaitable<T>
  ): Promise<T>

  errorTime<T>(
    message: string | Getter<string>
  , expression: () => T
  ): T
  errorTimeAsync<T>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , expression: () => Awaitable<T>
  ): Promise<T>

  fatalTime<T>(
    message: string | Getter<string>
  , expression: () => T
  ): T
  fatalTimeAsync<T>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , expression: () => Awaitable<T>
  ): Promise<T>

  traceTimeFunction<Result, Args extends unknown[]>(
    message: string | Getter<string>
  , fn: (...args: Args) => Result
  ): (...args: Args) => Result
  traceTimeAsyncFunction<Result, Args extends unknown[]>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , fn: (...args: Args) => Awaitable<Result>
  ): (...args: Args) => Promise<Result>

  infoTimeFunction<Result, Args extends unknown[]>(
    message: string | Getter<string>
  , fn: (...args: Args) => Result
  ): (...args: Args) => Result
  infoTimeAsyncFunction<Result, Args extends unknown[]>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , fn: (...args: Args) => Awaitable<Result>
  ): (...args: Args) => Promise<Result>

  debugTimeFunction<Result, Args extends unknown[]>(
    message: string | Getter<string>
  , fn: (...args: Args) => Result
  ): (...args: Args) => Result
  debugTimeAsyncFunction<Result, Args extends unknown[]>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , fn: (...args: Args) => Awaitable<Result>
  ): (...args: Args) => Promise<Result>

  warnTimeFunction<Result, Args extends unknown[]>(
    message: string | Getter<string>
  , fn: (...args: Args) => Result
  ): (...args: Args) => Result
  warnTimeAsyncFunction<Result, Args extends unknown[]>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , fn: (...args: Args) => Awaitable<Result>
  ): (...args: Args) => Promise<Result>

  errorTimeFunction<Result, Args extends unknown[]>(
    message: string | Getter<string>
  , fn: (...args: Args) => Result
  ): (...args: Args) => Result
  errorTimeAsyncFunction<Result, Args extends unknown[]>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , fn: (...args: Args) => Awaitable<Result>
  ): (...args: Args) => Promise<Result>

  fatalTimeFunction<Result, Args extends unknown[]>(
    message: string | Getter<string>
  , fn: (...args: Args) => Result
  ): (...args: Args) => Result
  fatalTimeAsyncFunction<Result, Args extends unknown[]>(
    message: Awaitable<string> | Getter<Awaitable<string>>
  , fn: (...args: Args) => Awaitable<Result>
  ): (...args: Args) => Promise<Result>
}
```

### TerminalTransport
```ts
interface ITerminalTransportOptions {
  logMinimumDuration?: number
}

class TerminalTransport implements ITransport {
  constructor(options?: ITerminalTransportOptions)
}
```

### stringToLevel
```ts
function stringToLevel(text: string, fallback: Level = Level.None): Level
```

---
_Source: https://npm.io/package/extra-logger · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
