1.0.0 • Published 1 year ago

firan-logging v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

fran-logging

Fran logger is a simple logging with an easy configuration. Supports level based filtering and tagging that keeps your logs readable and uncluttered!

Simple Features

  • Small footprint, around 500 bytes
  • Filter by level, ERROR > WARN > INFO > TRACE > DEBUG
  • Filter by tag, 'security' | 'anything'

Install

npm install fran-logging

Initialize

Tags typically refer to a subsystem or component like 'security' or FooBar.name. When fran-logging is initialized, tags can be assigned a level. A message is logged when its level is greater than or equal to its tag's assigned level.

import { log, LogLevel } from 'fran-logging';
import chalk from 'chalk';

// handler which does the logging to the console or anything
const logger = {
  [LogLevel.ERROR]: (tag, msg, params) => console.error(`[${chalk.red(tag)}]`, msg, ...params),
  [LogLevel.WARN]: (tag, msg, params) => console.warn(`[${chalk.yellow(tag)}]`, msg, ...params),
  [LogLevel.INFO]: (tag, msg, params) => console.log(`[${chalk.brightGreen(tag)}]`, msg, ...params),
  [LogLevel.TRACE]: (tag, msg, params) => console.log(`[${chalk.cyan(tag)}]`, msg, ...params),
  [LogLevel.DEBUG]: (tag, msg, params) => console.log(`[${chalk.magenta(tag)}]`, msg, ...params),
} as Record<LogLevel, (tag: string, msg: unknown, params: unknown[]) => void>;

/**
 * initialize fran-logging
 * @param config JSON which assigns tags levels. An uninitialized,
 *    tag's level defaults to DEBUG.
 * @param callback? handle logging whichever way works best for you
 */
log.init({ transporter: 'INFO', security: 'ERROR', system: 'OFF' }, (level, tag, msg, params) => {
  logger[level as keyof typeof logger](tag, msg, params);
});

Usage

import { log, tag } from 'fran-logging';

// the imported value "tag" is populated with YOUR tags!
log.error(tag.security, 'not authorized', statusCode);

// but if you prefer simply use strings
log.warn('transporter', 'Evil twin detected!');

// filtered since security's log level ERROR is greater than INFO
log.info(tag.security, 'login successful');

// trace
log.trace(tag.system, 'entering engine room');

// debug
log.debug(tag.system, { warpFactor, starDate });

// also filtered since system's level is OFF
log.error(tag.system, 'eject the warp core', error);

// updates tag levels on the fly
log.init({ loader: 'ERROR', system: 'INFO' });

// disable logging by clearing the callback
log.init();

Advanced Usage

Create an instance with its own tags and callback.

import { Log, tag } from 'fran-logging';

const myLog = new Log().init(
  { loader: 'INFO', security: 'ERROR' },
  (level, tag, msg, params) => {
    console.log(`${level}: [${tag}] `, msg, ...params);
});

myLog.info(tag.security, 'login successful');
@zitterorg/vel-at-tenetur@npmteasources/quia-voluptas-totam-molestiae@hishprorg/ipsa-consectetur-minima@hishprorg/nemo-blanditiis@hishprorg/quis-quibusdam@hishprorg/quis-doloribus@hishprorg/quidem-et@hishprorg/quis-est@hishprorg/quis-perferendis-culpa@hishprorg/sed-nihil-iusto@hishprorg/sequi-inventore-labore@hishprorg/sed-sunt@hishprorg/tempore-dolor-ut@womhla6stea/aut-aperiam-quibusdam-quasi@womhla6stea/autem-eaque-fuga-magnam@womhla6stea/consequuntur-dolores-sapiente-nesciunt@womhla6stea/consequuntur-possimus-nulla-officiis@womhla6stea/corrupti-rerum-est-totam@womhla6stea/cum-nostrum-alias-unde@womhla6stea/cumque-asperiores-molestias-veniam@womhla6stea/deserunt-esse-consequatur-sequi@womhla6stea/dicta-placeat-in-sit@womhla6stea/dolore-aliquam-ratione-nemo@womhla6stea/dolore-ipsum-dicta-quo@womhla6stea/doloremque-aliquam-vero-fugiat@womhla6stea/eaque-odio-deserunt-ipsum@womhla6stea/eius-non-ea-illo@womhla6stea/eos-provident-at-exercitationem@womhla6stea/natus-expedita-nostrum-distinctio@womhla6stea/neque-et-veniam-doloribus@womhla6stea/nihil-voluptatem-aliquid-delectus@womhla6stea/occaecati-officiis-itaque-excepturi@womhla6stea/occaecati-qui-earum-cum@womhla6stea/omnis-aliquam-numquam-exercitationem@womhla6stea/est-a-facilis-tempora@womhla6stea/eveniet-mollitia-cumque-maiores@womhla6stea/eveniet-sapiente-molestiae-eligendi@womhla6stea/exercitationem-veritatis-dolorem-libero@womhla6stea/explicabo-explicabo-harum-suscipit@womhla6stea/fugit-eligendi-deserunt-accusantium@womhla6stea/illo-hic-similique-ea@womhla6stea/impedit-exercitationem-delectus-reiciendis@womhla6stea/ipsa-enim-tenetur-blanditiis@womhla6stea/iusto-magnam-nemo-quod@womhla6stea/iusto-ut-culpa-sed@womhla6stea/laborum-assumenda-magni-quo@womhla6stea/libero-magnam-perferendis-dolor@womhla6stea/maiores-distinctio-distinctio-laboriosam@womhla6stea/minima-dolores-molestiae-ducimus@womhla6stea/modi-illum-cupiditate-quasi@womhla6stea/modi-soluta-ipsum-expedita@womhla6stea/mollitia-voluptatum-similique-rem@womhla6stea/nam-debitis-et-totam@womhla6stea/ab-quam-labore-nemo@womhla6stea/accusantium-a-dicta-deleniti@womhla6stea/accusantium-deserunt-laborum-maxime@womhla6stea/accusantium-odit-enim-laborum@womhla6stea/ad-dicta-omnis-velit@womhla6stea/alias-asperiores-hic-veniam@womhla6stea/aliquid-ab-ducimus-esse@womhla6stea/aliquid-reiciendis-similique-fugit@womhla6stea/animi-repellat-asperiores-earum@womhla6stea/architecto-dolores-molestiae-perspiciatis@womhla6stea/architecto-sit-occaecati-earum@womhla6stea/asperiores-repellat-natus-temporibus@womhla6stea/optio-error-qui-aliquid@womhla6stea/possimus-aliquid-labore-natus@womhla6stea/praesentium-ab-necessitatibus-ipsum@womhla6stea/quaerat-enim-totam-dolor@womhla6stea/qui-expedita-ab-eaque@womhla6stea/quia-eius-unde-cum@womhla6stea/quibusdam-voluptates-tempore-tempora@womhla6stea/ratione-quos-minima-quam@womhla6stea/ratione-totam-blanditiis-temporibus@womhla6stea/repellendus-vero-maiores-exercitationem@womhla6stea/reprehenderit-ipsum-ut-voluptatem@womhla6stea/sed-provident-unde-quasi@womhla6stea/sint-unde-vitae-ducimus@womhla6stea/soluta-excepturi-deleniti-repellendus@womhla6stea/suscipit-repellat-consectetur-occaecati@womhla6stea/ullam-iure-iure-voluptatibus@womhla6stea/ullam-libero-rerum-iusto@womhla6stea/veritatis-consectetur-minima-perferendis@womhla6stea/veritatis-consequatur-deserunt-unde@womhla6stea/vero-exercitationem-expedita-expedita@womhla6stea/vero-expedita-aspernatur-quaerat@womhla6stea/vitae-excepturi-distinctio-at@womhla6stea/vitae-voluptates-at-deserunt@womhla6stea/voluptas-dignissimos-sed-atque@taktikorg/accusantium-cum@taktikorg/ad-id@taktikorg/accusantium-possimus@taktikorg/adipisci-quia@taktikorg/ad-ipsa@taktikorg/asperiores-distinctio@taktikorg/ab-deserunt@taktikorg/alias-asperiores-non@taktikorg/aliquid-rerum-voluptate@taktikorg/architecto-nobis@taktikorg/amet-dolore-eius
1.0.0

1 year ago