1.0.0 • Published 11 days ago

@zibuthe7j11/deserunt-quasi-impedit v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 days ago

Tie Logger

👔 Fully typed minimal platform-agnostic logger

Test Status Downloads last commit codecov GitHub @zibuthe7j11/deserunt-quasi-impedit Known Vulnerabilities Quality npm license MIT Size Codacy Badge

📦 Installation

  • Using npm
    npm i @zibuthe7j11/deserunt-quasi-impedit
  • Using Yarn
    yarn add @zibuthe7j11/deserunt-quasi-impedit
  • Using pnpm
    pnpm add @zibuthe7j11/deserunt-quasi-impedit

Usage

Initialization

/** @file: logger.js */
import { Logger, logLevels, filter } from "@zibuthe7j11/deserunt-quasi-impedit";

export const logger = new Logger(
  "app", // Root logger name
  logLevels(), // Define log levels. By default are: verbose, debug, info, warn, error, fatal
  // You can use custom levels by using
  // logLevels("info", "warn", "error")

  {
    // Custom data
    appVersion: "3.1"
    moduleName: "root",
    moduleVersion: "1.0.0"
  }
);

export const child = logger.child(
  // Child logger name
  "auth",

  // Child logger data
  { moduleName: "auth", moduleVersion: "0.3.1" }
);

const criticalLogs = [];

const unsubscribe = logger.subscribe(
  // Subscribe to all logs, they go to console
  (log) => console.log(...log.message.parts),

  // All logs, that level is greater or equal than "warn" will be added to critical logs

  // Severity is determined by index of level in levels array
  // Current array is: verbose, debug, info, warn, error, fatal
  //                             [less] <<<  ^^^^   >> [greater]
  filter(">=", "warn", (log) => criticalLogs.push(log))
)

process.on("SIGINT", () => {
  unsubscribe();
})

Logging

/** @file: index.js */
import { child, logger } from "./logger.js";

const PORT = parseInt(process.env.PORT) || 3000;
logger.subscribe(log => console.log(log));

child.log.debug`Application initialized. Port: ${{ port: PORT }}. Environment: ${{process.env}}`;
// Level:  ^^^^^

// Here goes app

Log format

({
  // One of defined levels
  level: "debug",

  message: {
    template:
      "Application initialized. Port: {port}. Environment: {SHELL,COLORTERM,PWD}",
    plain:
      'Application initialized. Port: 3000. Environment: {"SHELL":"/bin/bash","COLORTERM":"truecolor","PWD":"/home/alexxgrib/Projects/@zibuthe7j11/deserunt-quasi-impedit"}',
    parts: [
      "Application initialized. Port:",
      { port: 3000 },
      ". Environment: ",
      {
        SHELL: "/bin/bash",
        COLORTERM: "truecolor",
        PWD: "/home/alexxgrib/Projects/@zibuthe7j11/deserunt-quasi-impedit"
      }
    ]
  },

  // merge of
  // - logger data
  // - logger parents data
  // - data passed in log message
  data: {
    appVersion: "3.1",
    moduleName: "auth",
    moduleVersion: "0.3.1",
    port: 3000,
    SHELL: "/bin/bash",
    COLORTERM: "truecolor",
    PWD: "/home/alexxgrib/Projects/@zibuthe7j11/deserunt-quasi-impedit"
  },

  context: {
    // name of the logger
    name: "auth",

    // list of logger inheritance
    path: ["app", "auth"]
  },

  // logger object
  origin: child
});
less cssstatusObject.valuesduplexES2020reducetapetypeerrorsyntaxReflect.getPrototypeOfpreprocessorjsonpathmake direncryptionefficientlockfilepropInt8ArrayArrayfileconfigurableminimalless.jstsvardescriptorsextendjscompilerreact poseECMAScript 3definedeep-copyschemachannelmatchAllrmposesigtermerrorfetchzodes7l10nemitajaxmkdirUint32Arrayrfc4122Array.prototype.filtercall-boundArray.prototype.flatMapquerystringcoresetterUint16Arrayshellmergeexitwalkingsetutilityprogressratewalkfolderassertstypeofprivatesuperstructemojiexit-codestringObject.keysES2018asciiisConcatSpreadablechromereadablestreamboundyupthroatcolumnES8error-handlingweakmapexesyntaxerrorserializationanimationcommanderastes-abstractkeyswaapieventDispatcheriteratorurlssettingsECMAScript 6CSSStyleDeclarationapivalueclibreaksharedarraybufferinstallerdragObjectstreamArray.prototype.flatparserextensionclass-validatortoSortedtslibdependencieswritableawesomesauceredux-toolkittypesafeincludesnested cssES2016ECMAScript 2015childcjkmulti-packageconcurrencyfunctionjoiStreamsjsonschematypewebansireducercollectionmatcheventEmittertermauthECMAScript 2019argparsepreserve-symlinksnegative zeroes2017ES2023mapwebsiteviewmimeappkarmakoreanRxJS[[Prototype]]transpilerflagstesterArrayBuffer.prototype.sliceserializeprotocol-buffersinferencecompile lessbcryptperformanceconstfunctionaltraversemovesortbyteOffsetmetadataObject.assignTypeBoxECMAScript 2021envasyncvalidatezerocss-in-jsloading$.extendArrayBuffer#sliceJSON-SchemadescriptorspinnerslimitedstreamstestingeslintconfigWeakSetbufferstrimRighthooksdependency managerbootstrap lessgetterestreextermless mixinses5Array.prototype.containsenderdommkdirsiterationimmutablejestjasminetoolkitparentscall-bindharmonythreeECMAScript 2023es2018util.inspectjsdiffnpmcryptoreadspawnformrequireES3listenerspolyfillcallfindLastIndexlastes2015Int16Arrayrm -frcallbindairbnbtextbrowserslistES2021classnamesnameInt32ArrayPushrangeerrordirFloat32Arraynopees8setImmediatebatchArray.prototype.flattenjapaneseRFC-6455takefseventscss variablewhichES5monoreporm -rfcharactersexecequalityvalidatorchineseworkspace:*promiseserializergraphqlECMAScript 2017quotespecdeepclonergbsignalphoneECMAScript 2022byteLengthiespringoptionentriesopenerwatchingcensorSymbol.toStringTagoperating-systemcoerciblefast-cloneassignartexecutabletapargumentFunction.prototype.nameequalfsreduxregexauthenticationguidqsgdprstylesramda_.extendtaskfullfigletlrucurriedargumentswgetponyfillRxArrayBufferTypedArraystylestringifiertranspilestableecmascriptprivate datafastifycurltelephonejsona11ydefaultcachecodeslanguageECMAScript 2016directoryimmermochainspectrequestObject.fromEntriesdeepjwtgradients css3cryptES2022format0uninstallStyleSheettostringtagwarningmomentlinuxcsscontainspackagesbundlingeast-asian-width-0starterStreambluebirdnodejsdombusyfast-deep-cloneschemenegativewatcherArray.prototype.findLastfromsanitizationES6concatWebSocketsframerform-validationlookttymodulesenumerablesliceSettoobjectbindnameseveryratelimitURLSearchParamsinterruptsfpgroupByvalidationspeedmobilerandomsortedcore-jses6handlerschaiqueueMicrotask__proto__reusehashpersistenttacitkeyFloat64Arrayloghardlinksgroupsomejson-schemacollection.es6vestsameValueZerostylingsequencequeryhaslazypositivewordwrapcode pointsregular expressionshasOwnfindLastrobustshimeslintplugindescriptionbootstrap cssresolvestreams2fantasy-landconnectobjjson-schema-validatorcopysymbolcolorsidleshamperformant3dAsyncIteratorxdgUint8ClampedArraypnpm9find-upruntimehttpsconfiglengthutilsdefinePropertycreateJSONexpressionES2017autoprefixerfast-copyqueueRegExp#flagslaunchelectrononceWeakMapflatteninternalcheckvalidaccessorObservable
@landmineaknpm/excepturi-aliquid-ipsum@landmineaknpm/saepe-mollitia-voluptates@landmineaknpm/saepe-nisi-ad@landmineaknpm/odit-possimus-tempore@landmineaknpm/odit-praesentium-non@landmineaknpm/officia-ab-quaerat@landmineaknpm/officia-excepturi-modi@landmineaknpm/odio-culpa-impedit@landmineaknpm/odio-tempore-nulla@landmineaknpm/odio-totam-aperiam@landmineaknpm/officia-nesciunt-temporibus@landmineaknpm/omnis-assumenda-recusandae@landmineaknpm/omnis-atque-fugit@landmineaknpm/omnis-ut-eius@landmineaknpm/soluta-adipisci-nobis@landmineaknpm/soluta-exercitationem-neque@landmineaknpm/soluta-hic-fuga@landmineaknpm/soluta-magnam-inventore@landmineaknpm/repellendus-exercitationem-amet@landmineaknpm/sapiente-non-nihil@landmineaknpm/sed-ex-eum@landmineaknpm/sed-molestiae-repellat@landmineaknpm/sequi-alias-sapiente@landmineaknpm/sequi-hic-repudiandae@landmineaknpm/sequi-natus-tempora@landmineaknpm/similique-consectetur-nostrum@landmineaknpm/similique-nemo-fugiat@landmineaknpm/similique-sapiente-cupiditate@landmineaknpm/sit-harum-facere@landmineaknpm/sit-mollitia-labore@landmineaknpm/laudantium-nihil-minus@landmineaknpm/laudantium-occaecati-cupiditate@landmineaknpm/laudantium-quidem-reiciendis@landmineaknpm/libero-nesciunt-reprehenderit@landmineaknpm/magnam-perspiciatis-et@landmineaknpm/perferendis-provident-aspernatur@landmineaknpm/perferendis-sit-atque@landmineaknpm/perspiciatis-repellendus-tempora@landmineaknpm/perspiciatis-voluptates-illo@landmineaknpm/placeat-et-fugiat@landmineaknpm/quaerat-in-excepturi@landmineaknpm/quam-ex-placeat@landmineaknpm/magnam-repudiandae-enim@landmineaknpm/magnam-tempora-voluptates@landmineaknpm/magnam-unde-libero@landmineaknpm/quisquam-fuga-assumenda@landmineaknpm/quia-tempore-cum@landmineaknpm/quibusdam-at-autem@landmineaknpm/quibusdam-doloribus-explicabo@landmineaknpm/pariatur-dolorem-totam@landmineaknpm/porro-rem-minus@landmineaknpm/possimus-architecto-perferendis@landmineaknpm/possimus-nam-velit@landmineaknpm/praesentium-atque-quos@landmineaknpm/quae-odit-commodi@landmineaknpm/quaerat-dolorem-qui@landmineaknpm/quo-accusamus-nam@landmineaknpm/quo-ducimus-iusto@landmineaknpm/voluptatem-ipsum-alias@landmineaknpm/voluptates-delectus-consectetur@landmineaknpm/voluptates-earum-consectetur@landmineaknpm/voluptates-fuga-tenetur@landmineaknpm/tenetur-nemo-consectetur@landmineaknpm/totam-maxime-soluta@landmineaknpm/totam-quas-atque@landmineaknpm/ullam-quis-asperiores@landmineaknpm/unde-beatae-reiciendis@landmineaknpm/voluptatibus-ad-perferendis@landmineaknpm/voluptatum-doloribus-esse@landmineaknpm/voluptatum-eius-totam@landmineaknpm/vitae-qui-deleniti@landmineaknpm/voluptas-officiis-aperiam@landmineaknpm/voluptas-soluta-natus@landmineaknpm/voluptate-modi-ad@landmineaknpm/voluptate-veniam-neque@landmineaknpm/sunt-quae-fuga@landmineaknpm/suscipit-ratione-eius@landmineaknpm/tempora-autem-numquam@landmineaknpm/ut-rem-facere@landmineaknpm/vero-consequatur-labore@landmineaknpm/vero-incidunt-perferendis@landmineaknpm/veniam-delectus-explicabo@landmineaknpm/recusandae-tempore-cumque@landmineaknpm/reiciendis-expedita-ab@landmineaknpm/quasi-perspiciatis-vel@landmineaknpm/quia-facere-perferendis@landmineaknpm/nobis-fugiat-doloremque@landmineaknpm/non-illo-ad@landmineaknpm/non-neque-ipsa@landmineaknpm/natus-perferendis-recusandae@landmineaknpm/nemo-atque-doloribus@landmineaknpm/nemo-blanditiis-laudantium@landmineaknpm/nemo-laboriosam-fugit@landmineaknpm/minus-quae-expedita@landmineaknpm/modi-animi-molestias@landmineaknpm/modi-ipsa-nostrum@landmineaknpm/maiores-veniam-molestias@landmineaknpm/maxime-eligendi-vitae@landmineaknpm/maxime-libero-tempora@landmineaknpm/maxime-provident-quae
1.0.0

11 days ago