Skip to content

Commit

Permalink
Now without any external dependencies, improved code, improved JSDocs…
Browse files Browse the repository at this point in the history
… and improved customizations
  • Loading branch information
zigazajc007 committed Aug 11, 2024
1 parent cad16c6 commit 33ee8ad
Show file tree
Hide file tree
Showing 16 changed files with 1,377 additions and 1,528 deletions.
19 changes: 19 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Publish
on:
push:
branches:
- main

jobs:
publish:
runs-on: ubuntu-latest

permissions:
contents: read
id-token: write

steps:
- uses: actions/checkout@v4

- name: Publish package
run: npx jsr publish
5 changes: 5 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"tabWidth": 2,
"useTabs": true,
"printWidth": 160
}
112 changes: 97 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,113 @@
# Logger-JS

Simple Logger implementation in JavaScript (ES6).
`Logger-JS` is a lightweight logging utility for JavaScript (ES6) that provides various logging levels and supports NDJson formatting for structured logging.

## Usage
## Table of Contents

1. [Installation](#installation)
2. [Importing the Library](#importing-the-library)
3. [Configuration](#configuration)
4. [Logging Messages](#logging-messages)
5. [NDJson Logging](#ndjson-logging)
6. [Customization](#customization)

## Installation

To install `Logger-JS`, use npm to add it to your project:

### 1. Download library
```bash
npm i --save @rabbit-company/logger
```

### 2. Import library
## Importing the Library

After installation, you can import the `Logger` into your JavaScript file:

```js
import Logger from "@rabbit-company/logger";
```

### 3. Change Settings
## Configuration

Configure the logger to suit your needs. You can set the log level to control which types of messages are logged:

```js
// Set the log level to SILLY to enable all levels of logging
Logger.level = Logger.Levels.SILLY;

// Enable or disable colored output
Logger.colors = true; // Set to false to disable colors

// Enable or disable NDJson logging
Logger.NDJson = false; // Set to true to enable NDJson logging
```

## Logging Messages

Use the provided methods to log messages at different levels of severity:

```js
// Log an error message
Logger.error("This is an error message.");

// Log a warning message
Logger.warn("This is a warning message.");

// Log an informational message
Logger.info("This is an informational message.");

// Log an HTTP-related message
Logger.http("This is an HTTP-related message.");

// Log a verbose message
Logger.verbose("This is a verbose message.");

// Log a debug message
Logger.debug("This is a debug message.");

// Log a silly message
Logger.silly("This is a silly message.");
```

## NDJson Logging

When NDJson logging is enabled, log messages are formatted as newline-delimited JSON. You can retrieve the NDJson formatted log using:

```js
// Enable all log levels
Logger.level = 6;
// Enable NDJson logging
Logger.NDJson = true;

// Retrieve NDJson log data
const ndjsonLog = Logger.getNDJson();
console.log(ndjsonLog);

// Clear NDJson log data
Logger.resetNDJson();
```

### 4. Start logging
## Customization

### 1. Customizing Log Colors

You can customize the colors associated with different logging levels by modifying the `LevelColors` mapping:

```js
Logger.error(message);
Logger.warn(message);
Logger.info(message);
Logger.http(message);
Logger.verbose(message);
Logger.debug(message);
```
// Change colors for different log levels
Logger.LevelColors[Logger.Levels.ERROR] = Logger.Colors.BRIGHT_RED;
Logger.LevelColors[Logger.Levels.INFO] = Logger.Colors.GREEN;
```

### 2. Customizing Log Message Format

You can also customize the format of the log messages by setting the `Logger.format` string. This format string can include the following placeholders:

- `{date}`: Inserts the current timestamp.
- `{type}`: Inserts the log level type (e.g., ERROR, INFO).
- `{message}`: Inserts the actual log message.

Example of customizing the log format:

```js
// Set a custom log message format
Logger.format = "[{date}] - {type}: {message}";
```
94 changes: 0 additions & 94 deletions browser/logger.d.ts

This file was deleted.

Loading

0 comments on commit 33ee8ad

Please sign in to comment.