Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/hunghg255/unloger
- Owner: hunghg255
- License: mit
- Created: 2024-01-22T10:14:03.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-02T23:46:06.000Z (10 months ago)
- Last Synced: 2024-11-05T09:20:34.026Z (3 months ago)
- Topics: javascript, log, logger, nodejs, npm, package
- Language: TypeScript
- Homepage:
- Size: 65.4 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Logger for Node.js## 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