npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

logger-winston-pg

v1.0.31

Published

Simple winston logger for log your app activity in console and files.

Downloads

36

Readme

#Simple logger for Node.js applications

Do you want to log your Node.js app activity? Simple, let this package know what environment you are working at, and track your own logs on console, file log or PostgreSQL table!

Installation

        npm i logger-winston-pg

Software dependencies

To use this package correctly, you must have to require the following packages: winston, pg and dotenv

Usage

Using this package is actually simple. You just have to use two functions: configLogger for config local or production environment and log for log your activity.

You do not need to create a table for logs, package will automatically creates it with required columns if it is not created.

You have to create an object as environment variable with the following structure:

//This is the structure
    "env": {
        "DB_TECHNICAL_LOGS": {
            "DB_ENDPOINT": "localhost",             //Host
            "DB_PORT": 5432,                        //Port
            "DB_SCH": "public",                     //Schema
            "DB_SCHEMA": "postgres",                //Database
            "DB_USER": "postgres",                  //User
            "DB_PASSWORD": "secret",                //Password
            "DB_SSL_MODE": "disable",               //SSLMode (disable, require)
            "DB_CERTIFICATE": ""                    //Certificate only if server requires SSL connection
        },
        "TABLE_NAME": "LOGS_TABLE_NAME"             //Logs table name
    }

This is how must be as environment variable:

"env": {
    "DB_TECHNICAL_LOGS": "{ \"DB_ENDPOINT\": \"localhost\", \"DB_PORT\": 5432, \"DB_SCH\": \"public\", \"DB_SCHEMA\": \"postgres\", \"DB_USER\": \"postgres\", \"DB_PASSWORD\": \"secret\", \"DB_SSL_MODE\": \"disable\", \"DB_CERTIFICATE\": \"\" }",
    "TABLE_NAME": "TABLE_NAME"
}

Package will search a environment variable named DB_TECHNICAL_LOGS and will obtain DB params.

const {configLogger, log } = require('logger-winston-pg');

const isProduction = true;
const fileSize = 10000000;
const filesCount = 10;

//Sets logger behavior as production environment
//Not showing logs in console
configLogger(isProduction, fileSize, filesCount);

/*
    Firs argument determines level of log (I: Info, W: Warn, E: Error) and
    second argument is the message log.
*/
log('I', 'This is an INFO log recorded in LOGS table and file.');

//Set logger behavior as local or test environment
configLogger(!isProduction, fileSize, filesCount);

log('W', 'This is a WARN log recorded in LOGS table, file and shown in console.');

Note: check dev dependencies and install them!