{"_id":"@dmantsevich/colorful-semantic-logger","_rev":"5-cd2daf096f2e64c18d19d8c4de208abb","time":{"1.0.0":"2021-01-28T21:56:06.103Z","created":"2021-01-28T22:00:38.343Z","1.0.1":"2021-01-28T22:00:38.638Z","modified":"2022-04-05T04:57:55.295Z","1.0.2":"2021-02-08T19:44:55.830Z"},"name":"@dmantsevich/colorful-semantic-logger","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.1":{"name":"@dmantsevich/colorful-semantic-logger","version":"1.0.1","description":"Colorful semantic logger","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/dmantsevich/colorful-semantic-logger.git"},"keywords":["colorful-logger","semantic-logger","log","logger","colors","semantic","colorful","console.log","console"],"author":{"name":"https://github.com/dmantsevich"},"license":"MIT","bugs":{"url":"https://github.com/dmantsevich/colorful-semantic-logger/issues"},"homepage":"https://github.com/dmantsevich/colorful-semantic-logger#readme","dependencies":{"@barusu/chalk-logger":"0.0.45","chalk":"^4.1.0","lodash.merge":"^4.6.2"},"gitHead":"b117c42c2296505a6bf14b60b93382a6a8355c63","_id":"@dmantsevich/colorful-semantic-logger@1.0.1","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-GsUW20uOppQTceqCE9qyYNF1w/mYqYUesAcXvkH0Z4E1rHXRRFKivlcR7wFXp7UkbOwToVgq9PQF7JMx1WnNSA==","shasum":"b40d78ca9467563f329b588e8a99d67dc9fa86ad","tarball":"https://registry.npmjs.org/@dmantsevich/colorful-semantic-logger/-/colorful-semantic-logger-1.0.1.tgz","fileCount":8,"unpackedSize":65117,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEzQHCRA9TVsSAnZWagAAFMgP/A17lWeNJKwdA5wC4wS8\n4+ziTLfI4ThpWRuQ0tjoYZETdjhKSM5kW09pZCRxqC3bdjZAVTW8AXD7W8xe\nKbG4ZHCDMQhZaxflh4PaGO2RDzhCPc6dDXpQrLMXpa48AC4ZxnL8Gwi8rsfG\nOBzKAAzNXIvwvrFw44IJfrcCaC4XrnI3fWmSJDT+opzyi3U7avGPKZ6Iz4cD\nHjO4G4JR+mRlEJXNt7RA9TwEE8oTE8Jnry4ik2ARfJBtZFf+VUHX/sr2dshm\nEkORitTBTzgehQD4FknUCb+cXzsfZuw/HsgUTbIF04wrnXLtjHICHVAzi3Y6\nNy7ojNcBRrA1jzG13puOfRMNpUReteor/I5ypBt4GeJn5VdwL1Q/wm+05kqi\niCe3O+RZTMSFhOKxEbAdq+sqMS5qiLZx638Gl166MzeLKL4aEbrNi6AKwsav\neMxqQsYt+cke2zaXXDDrh+uN2O0qEYS8RHMmU5g3PrH+6deRS+PGlNGsIJ3B\nkICPsv1tLOG05/Rvyx9S1hbyfbV8IU9nITqBoHtNFN8XRezArmwM/hGXMZyh\nFNXaTxrretKCVEJ0cn2UfulaYbj1pX40Wmp3N1RpTXE2UdM0ZlznRXSyF3kH\npOnnhG+fITWYX95alodB5RU6HQxz40P2obpK37s2cAb3IVeNOzAp1dNcX7Th\nOHac\r\n=00CG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB7dpyHOkcJiqBn0hY/Cjw+CtdlCm6aoO7A2DQK/71uGAiEAp7j97zynwTBYbNp67c1zSqTUt+6zO+59T+fQWw+ys1s="}]},"_npmUser":{"name":"dmantsevich","email":"mantsevich.dzenis@gmail.com"},"directories":{},"maintainers":[{"name":"dmantsevich","email":"mantsevich.dzenis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/colorful-semantic-logger_1.0.1_1611871238378_0.08451799090680234"},"_hasShrinkwrap":false},"1.0.2":{"name":"@dmantsevich/colorful-semantic-logger","version":"1.0.2","description":"Colorful semantic logger","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/dmantsevich/colorful-semantic-logger.git"},"keywords":["colorful-logger","semantic-logger","log","logger","colors","semantic","colorful","console.log","console"],"author":{"name":"https://github.com/dmantsevich"},"license":"MIT","bugs":{"url":"https://github.com/dmantsevich/colorful-semantic-logger/issues"},"homepage":"https://github.com/dmantsevich/colorful-semantic-logger#readme","dependencies":{"@barusu/chalk-logger":"0.0.45","chalk":"^4.1.0","lodash.merge":"^4.6.2"},"gitHead":"665d18fc10ce35af436979b78658360faed387ce","_id":"@dmantsevich/colorful-semantic-logger@1.0.2","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-0CD98nMctRBfPMzqrIA9OuGU2JWF5KR/grSYH/4j5Dp/Tp5KW546MUsLMTLYPNeq2bp8S4xA8BlGx9Th4MCnpQ==","shasum":"22e86a7758c7f54e3b772a03c989ce0fd1354211","tarball":"https://registry.npmjs.org/@dmantsevich/colorful-semantic-logger/-/colorful-semantic-logger-1.0.2.tgz","fileCount":18,"unpackedSize":172959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIZS4CRA9TVsSAnZWagAAU/IP/1+i2pQzv6Mw1cF11BSs\nLU7Alv/07eBlHrxOiodWsVxMqjdaVAOo19xsrnnAJuPpDdc4mPxHb/0dHyMO\nhjOjR1/o3wIjGVd67BCySe59IeSSjNuGny6ll5JnkCZjF/3Z8l+LAD9pPctd\noIKEgkT7o+BdpbEhZe9SQmlzPjEBp6w72YzdJ8DwlSEPpkkPoFtewdzuYi3a\n994BR2jXm1tB4X825zreENbfzy6GIuwscdP9ib6/Yey1X9SFE3HiKWnyHq64\nQEcFf/WPDf8B8FJB66PiNGqdt9OXec9yP5Tf5ZFa7VDgBfHgA/nUBuckIaTH\nyOV25iSOsBSGmZuUciS5TtbnVOZ7KYBWX2y5hwxcV3IH1soUFxT50zoiVXEi\nRrZCGTQN84LSQWvdpolMnSLNd1+fyxOorSiX8ynYFhs9rc+6a/OumiH9ZW92\ngDD7/xVXs8tu7i+AvmPocOdRy+vXT9fwZkWj8ByzQZzgawtqd7iTqaSBM7d/\nfUR/XfLKGQCrG8iORRUcc8Lar7RYKHFB117Z6wgZX3bnW0Am8EcZagCgMAwd\n7y+2rdO3RnyejCLLRMVocagPL7XeC3VsVLunQ1QIveCZpEivm44AKq6DUnup\nn4Xi/+yKW3qhVHNewjPOy5b6tRu5+F9oadh8CgzMQOnW3gFIz4uKKZ+CnKnC\nSaMU\r\n=NZtq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAIWQXZnbLqeSTYIX3jhnlRNFmih3D7vPyPGIzlQYMKLAiEAjZMK0XKF+HWkfBrFDIrlEV2UjhoTaVHuZHhV0yLxLsc="}]},"_npmUser":{"name":"dmantsevich","email":"mantsevich.dzenis@gmail.com"},"directories":{},"maintainers":[{"name":"dmantsevich","email":"mantsevich.dzenis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/colorful-semantic-logger_1.0.2_1612813495661_0.9380111759743086"},"_hasShrinkwrap":false}},"maintainers":[{"name":"dmantsevich","email":"mantsevich.dzenis@gmail.com"}],"description":"Colorful semantic logger","homepage":"https://github.com/dmantsevich/colorful-semantic-logger#readme","keywords":["colorful-logger","semantic-logger","log","logger","colors","semantic","colorful","console.log","console"],"repository":{"type":"git","url":"git+https://github.com/dmantsevich/colorful-semantic-logger.git"},"author":{"name":"https://github.com/dmantsevich"},"bugs":{"url":"https://github.com/dmantsevich/colorful-semantic-logger/issues"},"license":"MIT","readme":"# Colorful 🌈 Semantic 📖 Logger 🔢 for Node.js\r\n\r\n## Overview\r\nFast and simple log service, which can highlight important words, types & tags. 👨🏻‍💻\r\n\r\n[![](static/console.png)](https://www.npmjs.com/package/@dmantsevich/colorful-semantic-logger)\r\n\r\n## Features\r\n- [x] Colorful 🌈\r\n- [x] Highlight reserved words \r\n- [x] Highlight types \r\n- [x] Highlight tags \r\n- [x] Color by tags \r\n- [x] Custom formatting \r\n- [x] Configurable \r\n- [x] Different log levels \r\n- [x] Shortcodes\r\n- [x] etc.\r\n\r\n## How to use\r\n### Install\r\n1) Install **[NodeJs](https://nodejs.org/en/)** (This will also install **npm**)\r\n2) Install [@dmantsevich/colorful-semantic-logger](https://www.npmjs.com/package/@dmantsevich/colorful-semantic-logger) as dependency for your project (👍):\r\n```shell script\r\nnpm i @dmantsevich/colorful-semantic-logger --save\r\n```\r\n\r\n### Usages\r\n\r\n#### Simple\r\n```js\r\nconst { logger } = require('@dmantsevich/colorful-semantic-logger');\r\n\r\nlogger.log(`My log message`);\r\nlogger.debug(`My debug message`);\r\nlogger.verbose(`My verbose message`);\r\nlogger.info(`My info message`);\r\nlogger.warn(`My warn message`);\r\nlogger.error(`My error message`);\r\nlogger.fatal(`My fatal message`);\r\n```\r\n![Simple](./static/example-simple.png)\r\n\r\n### With name\r\n```js\r\nconst { Logger } = require('@dmantsevich/colorful-semantic-logger');\r\n\r\nconst logger = new Logger('Logger For My Package');\r\n\r\nlogger.log(`My log message`);\r\nlogger.debug(`My debug message`);\r\nlogger.verbose(`My verbose message`);\r\nlogger.info(`My info message`);\r\nlogger.warn(`My warn message`);\r\nlogger.error(`My error message`);\r\nlogger.fatal(`My fatal message`);\r\n```\r\n![With Name](./static/example-with-name.png)\r\n\r\n### With options\r\n```js\r\nconst { Logger, LEVELS } = require('@dmantsevich/colorful-semantic-logger');\r\n\r\nconst logger = new Logger('MyPackage', { level: LEVELS.WARN }); // filter by only WARN+ criteria\r\n\r\nlogger.log(`My log message`);\r\nlogger.debug(`My debug message`);\r\nlogger.verbose(`My verbose message`);\r\nlogger.info(`My info message`);\r\nlogger.warn(`My warn message`);\r\nlogger.error(`My error message`);\r\nlogger.fatal(`My fatal message`);\r\n```\r\n\r\n![Only Warns](./static/example-ony-warn.png)\r\n\r\n### Sub logger\r\n```js\r\nconst { Logger, LEVELS } = require('@dmantsevich/colorful-semantic-logger');\r\n\r\nconst packageLogger = new Logger('MyPackage', { level: LEVELS.DEBUG });\r\nconst logger = packageLogger.createNew('MyComponent', { level: LEVELS.FATAL }); // name will be: MyComponent.MyPackage\r\n\r\nlogger.log(`My log message`);\r\nlogger.debug(`My debug message`);\r\nlogger.verbose(`My verbose message`);\r\nlogger.info(`My info message`);\r\nlogger.warn(`My warn message`);\r\nlogger.error(`My error message`);\r\nlogger.fatal(`My fatal message`);\r\n```\r\n![Sub Logger](./static/example-sublogger.png)\r\n\r\n### Tags\r\nTag is a text between ``<tagName>..that text will be processed..</tagName>``. It helps to format & paint your message. Tags & their formats are configurable. **[See configuration](#configuration)**. \r\n\r\n### Reserved words\r\nColorful Semantic Logger can highlights important words in your logs. **[See configuration](#configuration)**.\r\n\r\n## API\r\n### Package\r\nDefault module exports next objects:\r\n- **ColorfulSemanticLogger(name, options)**: Main logger class. {_name_} - name/group for your custom logger. {_options_} - see **[configuration](#configuration)**.\r\n- **Logger**: the same as ColorfulSemanticLogger. Just shortname.\r\n- **logger**: default instance of ColorfulSemanticLogger class with default options.\r\n- **LEVELS**: Log levels. Levels: DEBUG, LOG, INFO, WARN, FATAL, ERROR, VERBOSE\r\n- unpacked **LEVELS** object\r\n\r\n## Logger instance\r\nFor creating new logger, you need to create new instance:\r\n```js\r\nconst { Logger } = require('@dmantsevich/colorful-semantic-logger');\r\nconst logger = new Logger('My New Logger', {});\r\nlogger.log('I want to say: <underline>Hello World!</underline>');\r\n```\r\n![Example: Hello World](./static/example-hello-world.png)\r\n\r\n### Methods\r\n- **logger.debug(msg, ...)**: Print ``debug`` message \r\n- **logger.verbose(msg, ...)**: Print ``verbose`` message  \r\n- **logger.info(msg, ...)**: Print ``info`` message \r\n- **logger.log(msg, ...)**: Print ``log`` message. The same as ``info``, but white.\r\n- **logger.warn(msg, ...)**: Print ``warn`` message.\r\n- **logger.error(msg, ...)**: Print ``error`` message.\r\n- **logger.throwError(msg, ...)**: Print ``error`` message and then throw new Error.\r\n- **logger.fatal(msg, ...)**: Print ``fatal`` message.\r\n- **logger.throwFatal(msg, ...)**: Print ``fatal`` message and then throw new Error.\r\n- **logger.print(infoMsg, verboseMsg)**: Easy way to print different messages for ``INFO`` & ``VERBOSE`` levels.\r\n- **logger.createNew(name[, options])**: create new sublogger. Sublogger uses namespace(split by dot) and same configuration.\r\n- **logger.removeTags(msg, ...)**: remove tags(only tags, not content) from message.\r\n- **Logger.LEVELS** (static property in the class): Contains levels: LOG, INFO, DEBUG, VERBOSE, FATAL, ERROR, WARN  \r\n\r\n## Configuration\r\nOptions for ``ColorfulSemanticLogger(name, options) or Logger(name, options)`` class.\r\n\r\n| Param     | Type      | Default Value     | Description |\r\n|--------   |:------:   |:---------------:  |-------------|\r\n| ``level``  | *{object}* | **LEVELS.INFO**            | Default log level. Can be overrided with commandline: --log-level=error |\r\n| ``colorful``  | *{bool}* | **true**            | Output should be colored or not|\r\n| ``semanticData``  | *{object}* | See: **lib/options.js**            | Configuration for semantic parser |\r\n| ``semanticData.tags``  | *{object}* | See: **lib/options.js**            | Predefined tags. Key is \"tagName\". Value is _function_ or string _hex color_. Function retrieve 2 argumentas: **innerTagText**, **logger** instance |\r\n| ``semanticData.reservedWords``  | *{array}* | See: **lib/options.js**            | Array with objects. _words_: array of reserved words. _color_: _function_ or string _hex color_. Function retrieve 2 argumentas: **reservedWord**, **logger** instance |\r\n| ``shortCodes``  | *{object}* | See: **lib/options.js**            | Object with shortcodes. Key is shortcode. Value is _function_. Function retrieve: **logger** instance |\r\n| ``headerFormat``  | *{string/function}* | **<time.now/> \\<level/> \\<loggerName/>:**  | Header format. Can be string or function. String supports **options.shortCodes**. Function retrive **logger** instance |\r\n\r\n\r\n## Semantic Data - Tags\r\nPredefined tags: **number**, **key**, **value**, **!** (important!), **path**.\r\n\r\nAlso possible to use [chalk](https://www.npmjs.com/package/chalk) API as tags. Example:\r\n```js\r\nconst { Logger } = require('@dmantsevich/colorful-semantic-logger');\r\nconst logger = new Logger('My Test Logger');\r\n\r\nlogger.log('It will be <red>Red</red>!');\r\nlogger.log('It will be <bgCyan>Background Cyan</bgCyan>!');\r\nlogger.log('It will be <bold>Bold</bold>!');\r\nlogger.log('It will be <#FF8C00>Orange</#FF8C00>!');\r\nlogger.log('It will be <bg#FF8C00>Background Orange</bg#FF8C00>!');\r\nlogger.log('It will be <green.underline.italic>Green + Underline + Italic</green.underline.italic>!');\r\n\r\n``` \r\n![Exmplae Chalk](./static/example-chalk.png)\r\n\r\n\r\n### How to use:\r\n```js\r\nconst { Logger } = require('@dmantsevich/colorful-semantic-logger');\r\nconst logger = new Logger('My Test Logger');\r\n\r\nlogger.log(`PI is <number>3.14</number>`); // 3.14 will be highlighted\r\nlogger.log(`Key: <key>myKey</key>. Values: <value>null</value>, <value>3.14</value>, <value>true</value>, <value>hello</value>.`); // null, 3.14, true, hello will be  highlighted\r\nlogger.log(`Path to module: <path>${__dirname}</path>.`); // __dirname value will be highlighted and parsed as path(relative for cwd).\r\n``` \r\n![Exmplae Chalk](./static/example-tags.png)\r\n\r\n### How to define new\r\n```js\r\n{\r\n  makeRed: '#ff00ff', // tag is makeRed. color will be \"#ff00ff\" <makeRed>Hello World</makeRed>\r\n  status: (v, logger) => 'Status:' + logger._paint(v, '#40e0d0') // tag is \"status\". Use: <status>200</status> -> Status: 200 (where 200 will be green). \r\n}\r\n```  \r\n\r\n## Semantic Data - Reserved Words\r\nReserved words helps to highlight important words in your logs.\r\n\r\nPredefined reserved words:\r\n- group \"ok\": **'success', 'successful', 'ok', 'done', 'fine', 'connected', 'resolved', 'cool'** : underlined + green\r\n- group \"not ok\": **'fail', 'error', 'errors', 'fatal', 'reject', 'rejected', 'issue', 'disconnect', 'disconnected', 'issue', 'bug', 'problem', 'problems', 'exception', 'exceptions', 'throw'** : bold + red\r\n\r\n### How to use\r\n```js\r\nlogger.log(`Connection is ok!`); // ok will be highlighted \r\nlogger.log(`Request was successful`); // successful will be highlighted \r\nlogger.log(`Promise was resolved & connected to DB`); // resolved & connected will be highlighted\r\n\r\nlogger.log(`Connection is fail!`); // fail will be highlighted \r\nlogger.log(`Some problems with your code.`); // problems will be highlighted \r\n``` \r\n![Example: Reserved Words](./static/example-reserved-words.png)\r\n\r\n### How to define new\r\n```js\r\n[{\r\n    words: ['start', 'begin'], // start action\r\n    color: (value, logger) => logger._paint(value, 'cyan') \r\n}, {\r\n    words: ['end', 'complete'], // end action\r\n    color: (value, logger) => logger._paint(value, 'magenta') \r\n}]\r\n```\r\n\r\n## ShortCodes\r\nShortCodes uses for head formating (example: ``<time.now/> <level/>(<random/>): ``).\r\n\r\nDefault ShortCodes: **<time.now/>, <date.now/>, \\<loggerName/>, \\<level/>**\r\n\r\nExample:\r\n```js\r\n{\r\n  'random': (logger) => Math.random(),\r\n  'random.color': 'gray' \r\n}\r\n```\r\n\r\n## Links\r\n\r\n[![@dmantsevich/colorful-semantic-logger](static/npm-logo.png)](https://www.npmjs.com/package/@dmantsevich/colorful-semantic-logger)\r\n\r\n[![dmantsevich/colorful-semantic-logger](static/github-logo.png)](https://github.com/dmantsevich/colorful-semantic-logger)\r\n\r\n\r\n🧰 \r\n\r\n---\r\n**2021**","readmeFilename":"Readme.md"}