Skip to content

nasriyasoftware/Logify

Repository files navigation

N|Solid

Logify.

Static Badge Repository Size Last Commit Status

Visit us at www.nasriya.net.

Logify is a simple and powerful Node.js logging package. Made with ❤️ in Palestine 🇵🇸


Installation

npm i nasriyasoftware/logify

Importing

Import in ES6 module

import logify from 'nasriya-logify';

Import in CommonJS (CJS)

const logify = require('nasriya-logify').default;

Configuration

You can configure the logify instance to suite your needs. Here's how you can configure it:

logify.config({
    /**The name of the running service or process. Default: `process.pid` */
    service: 'myTestApp',
    /**Set different handlers for more robust error handling */
    handlers: {
        uncaughtException: (error: Error, origin) => {
            // handle uncought exeptions; for example:
            logify.log(error); // Logs the error
        }
    },
    /**An absolute path to the directory where you want the logs to be stored at. Default: The project directory. */
    logLocation: `\\\\10.0.0.217\\Dev\\myTestApp` // A network location or a local directory
})

Note: All configurations are optional.


Usage

Here are some examples as of how to use the Logify package.

Throw an error

Whenever needed, you can throw a new AppError. Errors created from this class are automatically logged.

throw new logify.errors.AppError({ message: 'An error has occurred' });
// ⇨ AppError: An error has occurred

You can also throw errors with additional data if you want:

throw new logify.errors.AppError({
    message: 'Unauthorized user',
    name: 'HTTP',
    severity: 'Low'
});

// ⇨ HTTP: Unauthorized user

Note: If you only want to log the error, do NOT throw the error.

Log Incoming Requests

You can use predefined middlewares designed for specific server frameworks like HyperCloud or Express.js.

The middlewares can be accessed by:

const hypercloudMiddleware = logify.middlewares.hypercloud;
console.log(typeof hypercloudMiddleware); // ⇨ function
General Logging

Logify doesn't only log errors and incoming requests, you can log pretty much anything you want to the console as well as in the logs files.

const message = 'Hello World!'
const user = { name: 'John Doe', dob: new Date('1985-05-10') }
const error = new Error('A test error');

logify.logger.log(message);     // Log a string
logify.logger.log(user);        // Log an object
logify.logger.log(error);       // Log an error

Thank you.


License

Please read the license from here.