{"_id":"@cork-labs/monkfish-adapter-logger","_rev":"5-eea69168be4246ddd1fc29d5f81d5e52","name":"@cork-labs/monkfish-adapter-logger","dist-tags":{"latest":"0.3.0"},"versions":{"0.0.2":{"name":"@cork-labs/monkfish-adapter-logger","version":"0.0.2","description":"Logger adapter for Node.js framework Monkfish","license":"MIT","homepage":"https://github.com/cork-labs/monkfish-adapter-logger","author":{"name":"Andre Torgal","email":"andre.torgal@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/cork-labs/monkfish-adapter-logger.git"},"main":"src/index.js","scripts":{"dev":"_mocha --recursive test/ --watch","lint":"eslint --fix src/ test/","test":"istanbul cover _mocha -- --recursive test/","build":"eslint src/ test/ && npm run test","coverage":"http-server coverage/lcov-report/"},"dependencies":{"bunyan":"^1.8.12"},"devDependencies":{"chai":"^4.1.2","eslint":"^4.18.1","eslint-config-standard":"^11.0.0","eslint-plugin-import":"^2.9.0","eslint-plugin-node":"^6.0.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-standard":"^3.0.1","istanbul":"^0.4.5","mocha":"^5.0.1","sinon":"^4.4.2","sinon-chai":"^2.14.0"},"gitHead":"b3f9cc1b5a1277c5dc5032ab9bd33266fc3ab52b","bugs":{"url":"https://github.com/cork-labs/monkfish-adapter-logger/issues"},"_id":"@cork-labs/monkfish-adapter-logger@0.0.2","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"andrezero","email":"andre.torgal@gmail.com"},"dist":{"integrity":"sha512-SftkUETQsZ8xdUgrPP9kxLTRLCNdDMMzOGTvD1OcSYVrYh9ijjlJAF7tTcaUFugmuvxUM6Vhe9wNeY7ZlYozEA==","shasum":"d90655a78278ff0d4372977ae81486eb6223ba33","tarball":"https://registry.npmjs.org/@cork-labs/monkfish-adapter-logger/-/monkfish-adapter-logger-0.0.2.tgz","fileCount":8,"unpackedSize":8516,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC/ZXB+o8vQoU3DhCn+MMbOQRz7oYJrFCSAQKhwL1TM8AiB813s/cc+tfAWkWz1a4UYWTGGMhQnpDIU3C7k7TGE+Bw=="}]},"maintainers":[{"name":"andrezero","email":"andre.torgal@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monkfish-adapter-logger_0.0.2_1520211801507_0.19717448421214345"},"_hasShrinkwrap":false},"0.2.0":{"name":"@cork-labs/monkfish-adapter-logger","version":"0.2.0","description":"Logger adapter for Node.js framework Monkfish","license":"MIT","homepage":"https://github.com/cork-labs/monkfish-adapter-logger","author":{"name":"Andre Torgal","email":"andre.torgal@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/cork-labs/monkfish-adapter-logger.git"},"main":"src/index.js","scripts":{"dev":"_mocha --recursive test/ --watch","lint":"eslint --fix src/ test/","test":"istanbul cover _mocha -- --recursive test/","build":"eslint src/ test/ && npm run test","coverage":"http-server coverage/lcov-report/"},"dependencies":{"bunyan":"^1.8.12"},"devDependencies":{"chai":"^4.1.2","eslint":"^4.18.1","eslint-config-standard":"^11.0.0","eslint-plugin-import":"^2.9.0","eslint-plugin-node":"^6.0.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-standard":"^3.0.1","istanbul":"^0.4.5","mocha":"^5.0.1","sinon":"^4.4.2","sinon-chai":"^2.14.0"},"gitHead":"b0c23f01fd464043311ca634ca3a0bdd0b625202","bugs":{"url":"https://github.com/cork-labs/monkfish-adapter-logger/issues"},"_id":"@cork-labs/monkfish-adapter-logger@0.2.0","_npmVersion":"6.5.0","_nodeVersion":"11.3.0","_npmUser":{"name":"andrezero","email":"andre.torgal@gmail.com"},"dist":{"integrity":"sha512-xdVfUMacNo69lq56OVJqAvVKK9UaVyPLqiXESR0G0bb0qdqEgx9XSuyzNfNo7aqcnBDmu1VRWgX1S4fnayrNiw==","shasum":"4802a5d9796e2b95bcb4626659ea1ec728f276e6","tarball":"https://registry.npmjs.org/@cork-labs/monkfish-adapter-logger/-/monkfish-adapter-logger-0.2.0.tgz","fileCount":14,"unpackedSize":16443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNyUiCRA9TVsSAnZWagAAjkQP/20gJyVEhKYa8RdRJKOU\nGQ9xHPRn8UvdOnwQsxAmrhBx3ASRXTQgMwpeE8mgsGEVaA1yx4yU28axc+GM\nkRneFamqczg2Q6TtsDEsml7tZC5riLQ/4OAHnOw+mXWL+eDc9W2+VZ4l9etH\nHxFbngOLqjsTqjlGSjqgwKwfQKaksKTavCqTSBWdHflFINYT76qyJ5gdQxF8\nPhuB7I9+G67boaZ4Xoy4AlAqw6OsKMaBjMW0U4bJvSaplSjzmlSqKHvgy38i\n63vhB9BvjFsQ9/UzsqzWWgEMrW6GfK498UO2MkF5vOSl6Z3so8aZf9K+Pcco\ndZqfSY2i8L2UudX3JlQR1TzGsJfHoIdsrAJliBM4amyTpjPcSprgpWYsq3bz\nEX8+xvCHrc2Gg7DK50u8IBoUPx50y+PJZl/izZSuW3mynhRUTTZYUiZ8JAZ8\nOSDGIlRQ1GdVkTNx0JQYxD4KRjSYA3lDjXNw5qnoC+g9wPeAPkg1ZE8s1myr\na2sHGX3Y81/fcTM22EYwx6+bbEPe7jErYebe4NM9JcxTco4POU1/XUN5jdxv\njn+sEcQkD0Kjst6/YMvPz6XgMA47AE+0qGzaW08j4XCxHqxpMfRceevzkZJH\niogI3tya/K67Qexm6o6xHYMF7e4HDBEDbqXqsBwIV/WlvvaoJGFVztjmLJYL\naj0/\r\n=dR11\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGhmc9l5M//Ujqlqi9o7EofAeZVvE2Ktli3lGGaTWRgwAiEA6XaMfdf423Lz9JabrDxzKHeKFwJ2VwqFpAw872QyVWk="}]},"maintainers":[{"name":"andrezero","email":"andre.torgal@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monkfish-adapter-logger_0.2.0_1547117858306_0.7209289394637768"},"_hasShrinkwrap":false},"0.2.1":{"name":"@cork-labs/monkfish-adapter-logger","version":"0.2.1","description":"Logger adapter for Node.js framework Monkfish","license":"MIT","homepage":"https://github.com/cork-labs/monkfish-adapter-logger","author":{"name":"Andre Torgal","email":"andre.torgal@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/cork-labs/monkfish-adapter-logger.git"},"main":"src/index.js","scripts":{"dev":"_mocha --recursive test/ --watch","lint":"eslint --fix src/ test/","test":"istanbul cover _mocha -- --recursive test/","build":"eslint src/ test/ && npm run test","coverage":"http-server coverage/lcov-report/"},"dependencies":{"bunyan":"^1.8.12"},"devDependencies":{"chai":"^4.1.2","eslint":"^4.18.1","eslint-config-standard":"^11.0.0","eslint-plugin-import":"^2.9.0","eslint-plugin-node":"^6.0.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-standard":"^3.0.1","istanbul":"^0.4.5","mocha":"^5.0.1","sinon":"^4.4.2","sinon-chai":"^2.14.0"},"gitHead":"59feff4f43923bcca9efc3ec52371541e6f03a22","bugs":{"url":"https://github.com/cork-labs/monkfish-adapter-logger/issues"},"_id":"@cork-labs/monkfish-adapter-logger@0.2.1","_npmVersion":"6.5.0","_nodeVersion":"11.3.0","_npmUser":{"name":"andrezero","email":"andre.torgal@gmail.com"},"dist":{"integrity":"sha512-7VKOHGaOG/ub3bUsSuhSRg4je73h97C8G19fU93fb9HHq8tP5qLymo68ztHJdHch9eYpscjkz2jaADsoHtwyUg==","shasum":"28fc167f93f0e1fb0a23031cdd820e494206095e","tarball":"https://registry.npmjs.org/@cork-labs/monkfish-adapter-logger/-/monkfish-adapter-logger-0.2.1.tgz","fileCount":13,"unpackedSize":17021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcN8PdCRA9TVsSAnZWagAAqawP/2VgAjO6ANIiqHszk4S2\ntZNeH6OT+krGwBEXG59SI1zrfi1ARhBsey32y70K1YRsyMStzpFNIydgF+0+\n461IKyFZbPUqlkizQ4AAYh+PvjLvUAJyhDV/zq+ZRXvqt3kE0NzCc/zJFbeH\nhVDvKgng6teCLJ64VG+xeEi+eUqiTUME+P75cHv8kFAd+hOZ3D/Kd38WGZRB\nRzadaa/VK6FMv0ktC95kLrMmWtFDUV7/DobvWofpjLVY6eBTPpM4OukljyWF\n8FPRdTV+wDC7FBl9IYBB4rf2pZgJ9wHFjf2mhbRkNdPUrjzPUEnI3XjDrzc3\nuknkAyNXbHjxWueFn+1JcGxVIJeE01d3hX771OfqCFqg90JxXYlE+CzHuR7E\ncPA/wpIRBboWgI1KUFHx0EWQxAMRVUL+gZYw4jdYfcUbsZ588OP4/DV/a9Kb\n9V8XvXSvxmcU/c/uXA0iHjt+v8cqko57zpmA5+sxDpCmO+hRBORBjRm6ViDl\nIsINK6sUcPEU4xj0pj0spVLRveq0Ad9Ok9/OJIlrlXd49UfzNP3LuNULEP6j\n/LNx+7r2slXltBn20swD4sR7Mh23U9UnkpuTUcAlr2WGeln/JCrJ4+WL6EVo\nTCP/nZqeW5Qjb488lQ8ZzLPWCrZV05iyXgcix6STCy1ZHS8UocNN/012D9AP\nQI88\r\n=xQjE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5LCKmLvx0G8bYE6AayrsFHMpBNRwgHNLA5JI0w4yc4AIhALKWkDBa1TWgm1swfC22JUTs2NNSKg4xyWa02zNxpo01"}]},"maintainers":[{"name":"andrezero","email":"andre.torgal@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monkfish-adapter-logger_0.2.1_1547158492814_0.7947584157570928"},"_hasShrinkwrap":false},"0.3.0":{"name":"@cork-labs/monkfish-adapter-logger","version":"0.3.0","description":"Logger adapter for Node.js framework Monkfish","license":"MIT","homepage":"https://github.com/cork-labs/monkfish-adapter-logger","author":{"name":"Andre Torgal","email":"andre.torgal@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/cork-labs/monkfish-adapter-logger.git"},"main":"src/index.js","scripts":{"dev":"_mocha --recursive test/ --watch","lint":"eslint --fix src/ test/","test":"istanbul cover _mocha -- --recursive test/","build":"eslint src/ test/ && npm run test","coverage":"http-server coverage/lcov-report/"},"dependencies":{"bunyan":"^1.8.12"},"devDependencies":{"chai":"^4.1.2","eslint":"^4.18.1","eslint-config-standard":"^11.0.0","eslint-plugin-import":"^2.9.0","eslint-plugin-node":"^6.0.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-standard":"^3.0.1","istanbul":"^0.4.5","mocha":"^5.0.1","sinon":"^4.4.2","sinon-chai":"^2.14.0"},"gitHead":"0653d6024bac4467f014194fac567e39c3ab505b","bugs":{"url":"https://github.com/cork-labs/monkfish-adapter-logger/issues"},"_id":"@cork-labs/monkfish-adapter-logger@0.3.0","_npmVersion":"6.5.0","_nodeVersion":"11.3.0","_npmUser":{"name":"andrezero","email":"andre.torgal@gmail.com"},"dist":{"integrity":"sha512-u4lsYzQDsPLfVB9HdFUb9P845DNszrQ5FaNPRl9flJLEq4dzEVog9FlwyseVEatpSrvyY5VdBRlIicn79s2tOw==","shasum":"ecd15e630747e5901566ff2a2182eb9bd25c3c62","tarball":"https://registry.npmjs.org/@cork-labs/monkfish-adapter-logger/-/monkfish-adapter-logger-0.3.0.tgz","fileCount":14,"unpackedSize":22866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcN9wLCRA9TVsSAnZWagAAcNkQAKQBEnRDQQdujjqhpzxi\nEBQBALj/DuLibH8RpXHWE3LXGxUA+hun5ecUoaJSkQI2r8QQg3mkHFF8cEDI\nll0PCgBXoBffX6PF/rpYUzET/ZyNryJ+yEyw5ogi8L3/VHFL5suF8oNSIUq/\n708jJ+slSnMVbRZH7U5Q/bbii6LfXyICG7ZJILuZn3UUmvIXXquzC2o3BdbT\nASLbCxh9jVZbOXSKQ4FmD1pZAtVdPZksU8cKl6J3e9xC8DV5bQH5HypEVtRL\nRzJ96jMd4iUUuwKZcFosZK/UOJz6nVkXzY6yd6QRRHOCw9feghuPnO8xDmtj\nIyLv4HxtlK0iq0dXmdwPqzHbGkvR726RudtCyUDanmxGY22FNSTbndreFWMW\nTL4z1KWCejQvkqCPMwFohjlApJLF/QPJHQ6LGnsa81zQcmiKpgGoF+55nj0z\nOsBALEU42Wgt4hpyqfgRvSY70+pNSrpraIjGuFIIV3TUlVoCQx/aDBaBua+Y\nYl+cbpW6s+CzSICNYyR3mKJF6BGz/Zw9gnPt+uykEpRKPb3FdQLzMPf7uZ/s\nk0dlwAucqhL0yxVs7qFVqh+DUFFqBt7ADtnclAp02hFATXwJkloE7T6++HFz\niNM9DIAwURzaHxShFCvCVCPUhyphTR1ZVDz9bqFI7dY01jSa8sUIHcThv604\ntUYA\r\n=dsYi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFQl0p+AucZG5hpxDegPpy+y0KymVGLlj8FHfenkx7ckAiEAlQDfgbJHk6Yue4upPVxDMy0qKjactXOLBANgAqFeL7w="}]},"maintainers":[{"name":"andrezero","email":"andre.torgal@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monkfish-adapter-logger_0.3.0_1547164683549_0.46088618802272685"},"_hasShrinkwrap":false}},"time":{"created":"2018-03-05T01:03:21.433Z","0.0.2":"2018-03-05T01:03:21.577Z","modified":"2022-04-05T01:24:18.749Z","0.2.0":"2019-01-10T10:57:38.482Z","0.2.1":"2019-01-10T22:14:52.906Z","0.3.0":"2019-01-10T23:58:03.642Z"},"maintainers":[{"name":"andrezero","email":"andre.torgal@gmail.com"}],"description":"Logger adapter for Node.js framework Monkfish","homepage":"https://github.com/cork-labs/monkfish-adapter-logger","repository":{"type":"git","url":"git+https://github.com/cork-labs/monkfish-adapter-logger.git"},"author":{"name":"Andre Torgal","email":"andre.torgal@gmail.com"},"bugs":{"url":"https://github.com/cork-labs/monkfish-adapter-logger/issues"},"license":"MIT","readme":"# Monkfish Adapter Logger\n\n> Logger adapter for Node.js framework Monkfish.\n\n\n## Getting Started\n\n```shell\nnpm install --save @cork-labs/monkfish @cork-labs/monkfish-adapter-logger\n```\n\nWraps [bunyan]() logger library to facilitate injection, testing and configuration of logs.\n\nSee [Monkfish](https://github.comn/cork-labs/monkfish) for more information.\n\n\n## API\n\n### Logger\n\n#### `Logger.createLogger(config, data)`\n\nCreates an instance of Logger from configuration.\n\n- `config: object` - of stream instances (OutBunyan, OutConsole, OutFile).\n- `data: object (optional)` - permanent log fields (tip: keep it flat).\n\nExample config:\n```javascript\n{\n  name: 'my-app',\n  streams: [\n    // append to file (does not create directories, will fail if dirs are missings)\n    {\n      type: 'file',\n      path: './logs/test.log',\n      options: { ... } // override options for this stream only\n    },\n    {\n      type: 'bunyan',\n      bunyan: { /* Bunyan nativate options */ },\n      // options: { ... } are ignored in bunyan stream\n    },\n    // for debug purposes only, do not use in production\n    {\n      type: 'console',\n      // override options for this stream, e.g.: make console more human friendly\n      options: {\n        message: true,\n        prettyJson: 2,\n        dump: true\n      }\n    },\n  ],\n  // options for all streams\n  options: {\n    message: false, // log an extra line with a human readable message before the json payload\n    prettyJson: 0, // format json payload (multi-line)\n    dump: false // output error stack traces after payload (multi-line)\n  }\n}\n```\n\n#### `new Logger(name, streams): void`\n\nCreates an instance of Logger with the pre-configured stream instances.\n\n- `name: string` - added to the log fields as `log_n`\n- `streams: array` - of stream instances (OutBunyan, OutConsole, OutFile).\n- `data: object (optional)` - permanent log fields (tip: keep it flat).\n\n#### `logger.child(data): Logger`\n\nReturns a new logger, containing all the parent configuration and context, plus the provided optional data.\n\n- `data: object (optional)` - additional permanent log fields (tip: keep it flat).\n\n#### `logger.set(key, value): void`\n\nAdds key/value to permanent fields data or removes key when value not provided.\n\nAvoid adding objects, keep it flat.\n\n- `key: string`\n- `value: any (optional)` - If value not provided (or undefined is provided), removes key from permanent fields.\n\n#### `logger.debug('message', data): void`\n\nLogs a debug level message, with adittional optional fields.\n\n#### `logger.info(message, data): void`\n\nLogs an info level message, with adittional optional fields.\n\n- `message: string` - logged as `log_m`.\n- `data: object (optional)` - additional fields for this log message only.\n\n#### `logger.warn('message', data): void`\n\nLogs an warning level message, with adittional optional fields.\n\n- `message: string` - logged as `log_m`.\n- `data: object (optional)` - additional fields for this log message only.\n\n#### `logger.error('message', data, err): void`\n\nLogs an error level message, with adittional optional fields, plus optional error (ideally a subclass of Error).\n\n- `message: string` - logged as `log_m`.\n- `data: object (optional)` - additional fields for this log message only.\n\nIf error is a subclass of Error, only the following key/values are added to the log.\n\n- `err_name: err.constructor.name`\n- `err_msg: err.message`\n- `err_trace: err.stack`\n\nOtherwise, it is directly logged under the `err` key.\n\n#### `logger.flat(prefix, obj): object`\n\nFlattens the object for logging, use on data objects before you log them to keep them flat.\n\n- `prefix: string` - e.g. `user`.\n- `data: object (optional)` - additional fields for this log message only.\n- `ret: object (optional)` - if provided, fields are flattened into this object.\n\n```javascript\n// flattening one object\nconst flatUser = logger.flat('todo', todo);\nlogger.info('todo.created', data);\n\n// { log_m: 'todo.created', ..., todo_id: ..., todo_title: ... }\n\n// flattening two objects into one\nconst data = logger.flat('article', article, {});\nlogger.flat('tag', tag, data)\nlogger.info('article.tags.created', data);\n\n// { log_m: 'article.tags.created', ..., todo_id: ..., todo_title: ..., tag_id: ..., tag_title: ... }\n```\n\n\n## Develop\n\n```shell\n# lint and fix\nnpm run lint\n\n# run test suite\nnpm test\n\n# lint and test\nnpm run build\n\n# serve test coverage\nnpm run coverage\n\n# publish a minor version\nnode_modules/.bin/npm-bump minor\n```\n\n\n### Contributing\n\nWe'd love for you to contribute to our source code and to make it even better than it is today!\n\nCheck [CONTRIBUTING](https://github.com/cork-labs/contributing/blob/master/CONTRIBUTING.md) before submitting issues and PRs.\n\n\n## Links\n\n- [npm-bump](https://www.npmjs.com/package/npm-bump)\n- [chai](http://chaijs.com/api/)\n- [sinon](http://sinonjs.org/)\n- [sinon-chai](https://github.com/domenic/sinon-chai)\n\n\n## [MIT License](LICENSE)\n\n[Copyright (c) 2018 Cork Labs](http://cork-labs.mit-license.org/2018)\n","readmeFilename":"README.md"}