# @atlassian/logger-interface

Typescript interface that provides standard logging levels `debug`, `info`, `warn`, `error`, and `fatal`.

## Usage

```typescript
interface Logger {
    debug: LogMethod;
    info: LogMethod;
    warn: LogMethod;
    error: LogMethod;
    fatal: LogMethod;
}

interface LogMethod {
    (...data: Array<any>): void;
}
```

Arguments are untyped to provide freedom of choice for implementors.

An extension of `Logger` that contains a child method is provided for implementors that expose this method. Usually the
`opts` object contains a set of fields that are added as fields to each logging entry done by the _child_ logger. It may
also serve to set the minimum log level.

```typescript
interface HierarchicalLogger extends Logger {
    child(opts: any): HierarchicalLogger;
}
```

A default implementation named `NoLogger` is provided for testing purposes.
