### **LOGIFYS**

[![npm dependents](https://badgen.net/npm/dependents/logifys)](https://www.npmjs.com/package/logifys?activeTab=dependents)
[![install size](https://packagephobia.com/badge?p=logifys)](https://packagephobia.com/result?p=logifys)
[![Downloads](https://badgen.net/npm/dt/logifys)](https://www.npmjs.com/package/logifys)
[![NPM Version](https://img.shields.io/npm/v/code-example.svg)](https://www.npmjs.com/package/logifys)
[![run on repl.it](https://img.shields.io/badge/Run_on_Replit-f26207?logo=replit&logoColor=white)](https://replit.com/github/tyler-github/logify-example)
------------

## Installation

```bash
yarn add logifys
```
or

```bash
npm install logifys
```

------------

## **Usage**

To use LOGIFYS, simply import the package and call the **`log`** function:

```javascript
const log = require('logifys');

// log message with default options
log('This is a simple log message');

// log message with custom font, color, background color and size
log('This is a custom log message', {
  font: 'bold',
  color: 'red',
  backgroundColor: 'yellow',
  size: '36px'
});

// log message with file and json options
log('This is a log message with file and json options', {
  font: 'italic',
  color: 'green',
  size: '20px',
  file: './logs.txt',
  json: true
});

```


------------

## **Features**

LOGIFYS makes logging easier and nicer to look at with its extensive selection of fonts and colors.

------------

## **Colors**

LOGIFYS supports the following colors:

- Red,
- Blue,
- Green,
- Yellow,
- Black,
- Cyan,
- Magenta,
- White,
- Lime,
- Brown,
- Pink, 
- Gray,
- Purple,
- Orange



------------

## **Background Colors**

LOGIFYS supports the following background colors:

- Red,
- Blue,
- Green,
- Yellow,
- Black,
- Cyan,
- Magenta,
- White,
- Lime,
- Brown,
- Pink, 
- Gray,
- Purple,
- Orange



------------

| :warning: WARNING          |
|:---------------------------|
| Not all consoles support sizing |

## **Size**

LOGIFYS supports the following sizes:

- Any number



------------

| :warning: WARNING          |
|:---------------------------|
| JSON Support is in beta, use at your own risk. |

## **Json Support**

LOGIFYS supports jsons:

```javascript
const log = require('logifys');

// log message with file and json options
log('This is a log message with file and json options', {
  font: 'italic',
  color: 'green',
  size: '20px',
  file: './logs.txt',
  json: true
});

```


------------

## **Fonts**

LOGIFYS supports the following fonts:

- Bold,
- Underline,
- Italic.

------------

## **Example** 

Here is a simple proof of concept for LOGIFYS:


```javascript
const log = require('logifys');

var points = new Array(100);
for (var i = 0; i < 100; i++) {
    points[i] = i + 1; 
}

for (var i = 0; i < points.length; i++) {
    log(points[i], { font: 'bold', color: 'magenta' }); 
}
```
This code will produce the following output:

![Image](/package/Images/Count.png)

------------

## **Logging** 

Here is an example of how the logging to .txt works:

```javascript
const log = require('logifys');

log('This is an example of logging...', { font: 'bold', color: 'red', file: './log.txt' });
```
This code will produce the following output:

![Image](/package/Images/LogExample.png)

This code will result it being logged in a .txt file as shown:

![Image](/package/Images/LogFileExample.png)

------------

## **Real World Usage**

Here is an example of how you might use Logifys in a real world scenario:

```javascript
const log = require('logifys');
const fs = require('fs');
const https = require('https');

// Your code to fetch data from an API
https.get('https://jsonplaceholder.typicode.com/posts', (res) => {
  let data = '';

  res.on('data', (chunk) => {
    data += chunk;
  });

  res.on('end', () => {
    try {
      const posts = JSON.parse(data);
      log(`Successfully fetched ${posts.length} posts`, { color: 'green', file: './log.txt' });
    } catch (error) {
      log(`Error fetching posts: ${error}`, { color: 'red', file: './log.txt' });
    }
  });
});

// Your code to write to a file
fs.writeFile('./notes.txt', 'Remember to buy milk', (error) => {
  if (error) {
    log(`Error writing to file: ${error}`, { color: 'red', file: './log.txt' });
  } else {
    log(`Successfully wrote to file`, { color: 'green', file: './log.txt' });
  }
});
```

------------

## **Web Development Example**

Here is an example of how you might use Logifys in a web development scenario:

```javascript
const log = require('logifys');
const express = require('express');

const app = express();
const port = process.env.PORT || 3000;

app.listen(port, () => {
  log(`Server is listening on port ${port}`, { font: 'bold', color: 'green' });
});

app.get('/', (req, res) => {
  log('Received a request to the root endpoint', { font: 'italic', color: 'blue' });
  res.send('Welcome to the Express server!');
});

app.use((error, req, res, next) => {
  log(`Error: ${error.message}`, { font: 'underline', color: 'red' });
  res.status(500).send('An error occurred, please try again later.');
});

```