Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hunghg255/unloger

Logger for nodejs
https://github.com/hunghg255/unloger

javascript log logger nodejs npm package

Last synced: 3 months ago
JSON representation

Logger for nodejs

Awesome Lists containing this project

README

        



logo


Logger for Node.js


NPM Version
NPM Downloads
Minizip
Contributors
License

## Installation

```bash
npm i unloger
```

## Usage

### Import already created instance. You can't configure it.

```ts
import { logger } from 'unloger';

logger.info('Hello World!');
```

### Create your own instance and configure it.

```ts
import { createLogger } from 'unloger';

export const logger = createLogger(options: LoggerConfig);
```

See [`LoggerConfig`][api-logger-config] for more details.

### Creating your own reporter

- There are two types of reporters:
- [`ReporterLevels`][api-reporter-levels]
- [`ReporterOverride`][api-reporter-override]
- Within ReporterLevels you can create a reporter for each log level. These without a reporter will use the default reporter or the reporterOverride if it is set.

```ts
import { createLogger } from 'unloger';

const logger = createLogger({
reporter: {
error: ({ message, type, timestamp, icon, color }, options) => {
console.log(`[${timestamp}] ${icon} ${message}`);
}, // This will override the default reporter for error level
},
reporterOverride: ({ message, type, timestamp, icon, color }, options) => {
console.log(`[${timestamp}] ${icon} ${message}`);
}, // Level that aren't custom configured will fallback to this reporter
});
```

## Types

#### LoggerConfig

```ts
export type LoggerConfig = Partial<{
level: number;
files: Partial<{
path: string; // Path to the folder where the logs will be saved
extension: 'text' | 'json';
fileName: string; // Name of the file
}>;
format: Partial<{
colors: boolean;
timestamp: boolean;
}>;
reporter: ReporterLevels;
reporterOverride: ReporterOverride;
}>;
```

#### ReporterLevels

```ts
export type ReporterLevels = Partial<{
[key in LogType]: (
{ message, type, timestamp, icon, color }: ReporterObject,
options: LoggerConfig,
) => void;
}>;
```

#### ReporterOverride

```ts
// If this reporterOverride is set in a logger instance, it will override level that aren't custom configured
export type ReporterOverride = (
{ message, type, timestamp, icon, color }: ReporterObject,
options: LoggerConfig,
) => void;
```

## Use color

```ts
import { color } from 'unloger/color';
```

### Types

```ts
declare const color:
| {
reset: (string: string) => string;
bold: (string: string) => string;
dim: (string: string) => string;
italic: (string: string) => string;
underline: (string: string) => string;
inverse: (string: string) => string;
hidden: (string: string) => string;
strikethrough: (string: string) => string;
black: (string: string) => string;
red: (string: string) => string;
green: (string: string) => string;
yellow: (string: string) => string;
blue: (string: string) => string;
magenta: (string: string) => string;
cyan: (string: string) => string;
white: (string: string) => string;
gray: (string: string) => string;
bgBlack: (string: string) => string;
bgRed: (string: string) => string;
bgGreen: (string: string) => string;
bgYellow: (string: string) => string;
bgBlue: (string: string) => string;
bgMagenta: (string: string) => string;
bgCyan: (string: string) => string;
bgWhite: (string: string) => string;
blackBright: (string: string) => string;
redBright: (string: string) => string;
greenBright: (string: string) => string;
yellowBright: (string: string) => string;
blueBright: (string: string) => string;
magentaBright: (string: string) => string;
cyanBright: (string: string) => string;
whiteBright: (string: string) => string;
bgBlackBright: (string: string) => string;
bgRedBright: (string: string) => string;
bgGreenBright: (string: string) => string;
bgYellowBright: (string: string) => string;
bgBlueBright: (string: string) => string;
bgMagentaBright: (string: string) => string;
bgCyanBright: (string: string) => string;
bgWhiteBright: (string: string) => string;
}
| {
[x: string]: StringConstructor;
};

export { color };
```

[api-logger-config]: #loggerconfig
[api-reporter-levels]: #reporterlevels
[api-reporter-override]: #reporteroverride
[license]: license
[author]: https://github.com/malezjaa