{"_id":"pino-arborsculpture","_rev":"13-66880e4adec22d876a8f1aa5aa85f846","name":"pino-arborsculpture","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"pino-arborsculpture","version":"1.0.0","keywords":["pino","logging"],"author":{"name":"James Sumners","email":"james.sumners@gmail.com"},"license":"MIT","_id":"pino-arborsculpture@1.0.0","maintainers":[{"name":"jsumners","email":"james.sumners@gmail.com"}],"homepage":"https://github.com/pinojs/pino-arborsculpture#readme","bugs":{"url":"https://github.com/pinojs/pino-arborsculpture/issues"},"dist":{"shasum":"7fcfb9d2af1924719f057a63a970c0269fcc48a3","tarball":"https://registry.npmjs.org/pino-arborsculpture/-/pino-arborsculpture-1.0.0.tgz","integrity":"sha512-BmOnAhBGRItfj7PM0fHVan9JxHY/RLd2uKWFED5hI/sLyXPD5Z8/jCY7GKFbpndseeTIBcAZ2rMUqQHo97EDtw==","signatures":[{"sig":"MEYCIQD21hxMasEzYYi+V4cbFztrHlkDUI3NV3Ss3FX/a7zZGwIhAP1mzJcqjv5Xh18fLqmXWsCo8FSHnuD9lexYWc2T9d+5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"sculpt.js","_from":".","_shasum":"7fcfb9d2af1924719f057a63a970c0269fcc48a3","gitHead":"03ca7415713bf1448c9d25b6911df74173c44e10","scripts":{"test":"standard && tap --no-cov test/*.test.js"},"_npmUser":{"name":"jsumners","email":"james.sumners@gmail.com"},"precommit":["test"],"repository":{"url":"git+https://github.com/pinojs/pino-arborsculpture.git","type":"git"},"_npmVersion":"3.10.8","description":"Allows changing Pino log levels at runtime via a file monitor","directories":{},"_nodeVersion":"6.9.1","dependencies":{"fast-json-parse":"^1.0.2"},"devDependencies":{"tap":"^8.0.1","pino":"^3.0.4","uuid":"^3.0.1","standard":"^8.6.0","pre-commit":"^1.1.3","flush-write-stream":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/pino-arborsculpture-1.0.0.tgz_1480630250026_0.09920099633745849","host":"packages-12-west.internal.npmjs.com"}},"1.1.0":{"name":"pino-arborsculpture","version":"1.1.0","keywords":["pino","logging"],"author":{"name":"James Sumners","email":"james.sumners@gmail.com"},"license":"MIT","_id":"pino-arborsculpture@1.1.0","maintainers":[{"name":"davidmarkclements","email":"david.mark.clements@gmail.com"},{"name":"matteo.collina","email":"hello@matteocollina.com"},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"watson","email":"w@tson.dk"}],"homepage":"https://github.com/pinojs/pino-arborsculpture#readme","bugs":{"url":"https://github.com/pinojs/pino-arborsculpture/issues"},"dist":{"shasum":"08fe90c21b4a734fddfc9a71ee29c346a3b8c680","tarball":"https://registry.npmjs.org/pino-arborsculpture/-/pino-arborsculpture-1.1.0.tgz","fileCount":5,"integrity":"sha512-Mud78+WNB20ICHmVIjtpPIY7QNe2/760/iMm0w/SUuj1ZBV6b11XmoSzf1mbB1bcPptXHLXwVULKC6qyg3zQ9Q==","signatures":[{"sig":"MEQCIAw5aRDd0TvSHY7PVSjNugmpic7ipDX3RKKosS/A6xFMAiBQAp/gPoe67dV/Syg0drPdSji8zhxy6GyBLoy2bNQURg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgFc/DCRA9TVsSAnZWagAA5+wP/0FAApNfGFViVpcY0aOn\nUp/bTxOIJ5BWVd3MK/I5TBnJ7BGz9DitqI0LLxAsFuDEs84MucwxO7PlwEJF\nWjwu0Mk3E2Oa/Gm7bSZbG9YVI0/XokJnojoXXRZh12Khp/Li2gCfvZ1YNJfH\n5GeQAkQZsORIaNQPERYPeKrGliDMVE6RAwV8Zi7Le65IesCXySVPsVbP3YNc\nufxyUa1DuFquru5t3Ai2o3FcjGs2Py2z2OZ8PD9vQtQCCBKqsBdQT50gjmts\nyuy2KZPHfeONXPURyn37mMeS5qMR90/sT83GaCoI5xOn0IqC9gfJE017Ksn9\niobEjtJnw2ygacDWpVGCQLeAqvnj4ROx41fGym8fazFuxUrEriggAfmOW9sa\nNacCdXSTo0LExIDp2VJY++K6Cyg4gZHyvwbsEJ+Asf8YfCzmYZPe5UAbLuBh\nUIFSnAJw4lTvr77e6aOheZ9vjRLHcWAFCRJdvCIXxrRcfWfgr4F1JZPA96Ei\nW3yXMcQbYXzUwQmsIbPlFYliGh2mE9NpPnl1E4yvTPRiqyikp9z9VZAnQU3e\ntD4XKqj6CYTT5Fvdp1Z/yqYIizoDlf5PTyG7+ndXp+cbtqPktI++kK9E9CON\nR6/sx7AIk+o0MRen4nLGDsKX5rXb4iqGBRtPK4Eua5QAtZIo3GFKjab/lkdV\n+WsP\r\n=MfjU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"sculpt.js","gitHead":"f9b1f476a36fc81d25ff7bc613a6f84bf1bd4cc1","scripts":{"test":"standard && tap --no-cov test/*.test.js"},"_npmUser":{"name":"jsumners","email":"james.sumners@gmail.com"},"precommit":["test"],"repository":{"url":"git+https://github.com/pinojs/pino-arborsculpture.git","type":"git"},"_npmVersion":"6.14.10","description":"Allows changing Pino log levels at runtime via a file monitor","directories":{},"_nodeVersion":"14.15.4","dependencies":{"fast-json-parse":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tap":"^14.11.0","pino":"^6.11.0","uuid":"^8.3.2","standard":"^16.0.3","pre-commit":"^1.1.3","proxyquire":"^2.1.3","flush-write-stream":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pino-arborsculpture_1.1.0_1612042178879_0.6770769451316856","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"pino-arborsculpture","version":"2.0.0","keywords":["pino","logging"],"author":{"name":"James Sumners","email":"james.sumners@gmail.com"},"license":"MIT","_id":"pino-arborsculpture@2.0.0","maintainers":[{"name":"davidmarkclements","email":"david.mark.clements@gmail.com"},{"name":"matteo.collina","email":"hello@matteocollina.com"},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"watson","email":"w@tson.dk"}],"homepage":"https://github.com/pinojs/pino-arborsculpture#readme","bugs":{"url":"https://github.com/pinojs/pino-arborsculpture/issues"},"dist":{"shasum":"9216496c228f286a836733af42d9ee3ca353f549","tarball":"https://registry.npmjs.org/pino-arborsculpture/-/pino-arborsculpture-2.0.0.tgz","fileCount":6,"integrity":"sha512-+m0dZpAInf3/CGruuyIQMThvmO9Fke4HyGrRnl+vXNyNXZMkvYljuYpY1djgB2+AqJrzVw9eKP7chQDRy7kt1g==","signatures":[{"sig":"MEQCICwGEsQcpQTcbnwteFH0MkPdSWLMI5d5gMm10k5k3iioAiBRinR+2Dxhej6TGIgMPW+m96bPLKS+dapXr7RizGYIFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJio3SXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoL7RAAk/SLrgUzy7YdM03VjTafkItjBtdga2Exbh24z6Foq1CBpIb4\r\nTm8WkubioJ/YJ6LjgrsJIwtHpsHgf5zBcfWBe2Cj8xoEoEBb0RtSxNjLIY6s\r\noTGp31Ect9nAelCHcTNgRx7c27rTTphLEuPOkamGwFU1eob/U/KdGdZxQWl+\r\nSDZdcvjGhneThOMyEpA2FYoKA699w2E+5fL/YZavqH/m/APVLANIaOe3B0N+\r\nr9b11Vk+6MfM/9Yy8UGWPXiJzgWtzj45gBEfCETOW+xelBnyc0FoOeRteJW9\r\nA6r4jy1A2N8Rsy8VouuhTeRWltn3dwqd3qQupHf3bR0Uf2DJVX+93K5kYvug\r\nQvfdjh13NLdLX5PtROL9eaUxufD9J6HaLX4sgLVwQrmW4ZWtYp/9YqfqR6+C\r\nCCIxZ35XCtCSnvmFO9+N2DplbSydq23rNSzK92jRb9JpYFXPMZxlZ3uFLmmZ\r\nXHLUIZ5POlL3/+slGI+yvQrG3xM+/f7j830utZBIpX3LMsAzvuSJUVh+u891\r\n3gwhTYXIzkdhsk5+ZiuU0RA1HpdAoB/iai6ALui2EN2CJMybRHJxaU4OXbGB\r\n+HOD1Z2aAqI+9lv1sqldRYfR6xGqx0t578W3qEKNUwqjLr+N0p0L9uRPcxTY\r\nKrN/lQHaaylKARKk5y5jOXKBZzpBLlSUkA0=\r\n=bdsX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"sculpt.js","gitHead":"d0a19df0a19a0da6f9a129aa0454e8ea6dc2092d","scripts":{"test":"standard && tap --no-cov test/*.test.js"},"_npmUser":{"name":"jsumners","email":"james.sumners@gmail.com"},"precommit":["test"],"repository":{"url":"git+https://github.com/pinojs/pino-arborsculpture.git","type":"git"},"_npmVersion":"8.11.0","description":"Allows changing Pino log levels at runtime via a file monitor","directories":{},"_nodeVersion":"18.3.0","dependencies":{"fast-json-parse":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tap":"^16.0.0","pino":"^8.0.0","uuid":"^8.3.2","standard":"^17.0.0","pre-commit":"^1.1.3","proxyquire":"^2.1.3","flush-write-stream":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pino-arborsculpture_2.0.0_1654879383521_0.02299992780682114","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"pino-arborsculpture","version":"3.0.0","keywords":["pino","logging"],"author":{"name":"James Sumners","email":"james.sumners@gmail.com"},"license":"MIT","_id":"pino-arborsculpture@3.0.0","maintainers":[{"name":"matteo.collina","email":"hello@matteocollina.com"},{"name":"jsumners","email":"james.sumners@gmail.com"},{"name":"watson","email":"w@tson.dk"}],"homepage":"https://github.com/pinojs/pino-arborsculpture#readme","bugs":{"url":"https://github.com/pinojs/pino-arborsculpture/issues"},"dist":{"shasum":"1d09fef2b1ffda5d493635d0569f400aed2e5e33","tarball":"https://registry.npmjs.org/pino-arborsculpture/-/pino-arborsculpture-3.0.0.tgz","fileCount":7,"integrity":"sha512-jQ0yZeQhWUtqRaSRtf+M/ApL5tGTGtD6uUCTVgVqmijJHwugomCiH8mL0gBNRiVmPwhZj2TUzfH3quyK50KOIA==","signatures":[{"sig":"MEYCIQDNLcASOmDGDWWa5qe2CwLzu0yys/ln6yzybRMEYUT+SAIhAJP4MONJpGWm3CNeVDNRVcfdTTksKSgwOz/ei46Nj5GE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10041},"main":"sculpt.js","gitHead":"efff611b8d130b839f0bcfb41a4362aa5a14285e","scripts":{"test":"eslint && c8 node --test"},"_npmUser":{"name":"jsumners","email":"james.sumners@gmail.com"},"repository":{"url":"git+https://github.com/pinojs/pino-arborsculpture.git","type":"git"},"_npmVersion":"11.5.1","description":"Allows changing Pino log levels at runtime via a file monitor","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-json-parse":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","pino":"^10.0.0","eslint":"^9.37.0","proxyquire":"^2.1.3","neostandard":"^0.12.2","flush-write-stream":"^2.0.0","@matteo.collina/tspl":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/pino-arborsculpture_3.0.0_1759918490079_0.2086063331546164","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2016-12-01T22:10:52.178Z","modified":"2026-07-29T19:41:21.127Z","1.0.0":"2016-12-01T22:10:52.178Z","1.1.0":"2021-01-30T21:29:39.027Z","2.0.0":"2022-06-10T16:43:03.729Z","3.0.0":"2025-10-08T10:14:50.251Z"},"bugs":{"url":"https://github.com/pinojs/pino-arborsculpture/issues"},"author":{"name":"James Sumners","email":"james.sumners@gmail.com"},"license":"MIT","homepage":"https://github.com/pinojs/pino-arborsculpture#readme","keywords":["pino","logging"],"repository":{"url":"git+https://github.com/pinojs/pino-arborsculpture.git","type":"git"},"description":"Allows changing Pino log levels at runtime via a file monitor","maintainers":[{"email":"hello@matteocollina.com","name":"matteo.collina"},{"email":"james.sumners@gmail.com","name":"jsumners"}],"readme":"# pino-arborsculpture\n\n**Lead maintainer:** [jsumners](https://github.com/jsumners)\n\n*pino-arborsculpture* is a module that allows you to change the logging level\nof a [Pino][pino] logger, or set of loggers (e.g. child loggers) while your\nprocess is running. It accomplishes this by monitoring a specified file\nfor changes and acts accordingly.\n\n[pino]: https://github.com/pinojs/pino\n\n## Example\n\n```js\n'use strict'\n\nconst Arborsculpt = require('pino-arborsculpture')\nconst pino = require('pino')\nconst log = pino() // info level by default\n\nconst arbor = new Arborsculpt({\n  path: '/tmp/adjustments.json',\n  loggers: [log],\n  interval: 60_000 // the default\n})\n\narbor.on('error', function (err) {\n  // there was a problem reading the file or setting the level\n})\n```\n\nAt some point you decide `log` should be set to the `debug` level because\nproduction is broken, and you have to figure out why without taking it offline,\nso you create the `/tmp/adjustments.json` file:\n\n```json\n{\n  \"level\": \"debug\"\n}\n```\n\nWithin one minute of creating the file, your process will start outputting\n`debug` level log lines.\n\n## Options\n\n+ `path` [optional]: string pointing to the file that will be monitored. This\n  file does not need to exist until such time as you are ready to change\n  levels in your process. Default: `os.tmpdir() + 'aborsculpt.json'`\n+ `loggers` [required]: an array of Pino instances to adjust. Default: `[]`\n+ `interval` [optional]: the number of milliseconds between scans of the\n  specified file. Default: `60_000`\n\n## Level Change File Format\n\nThe file being monitored **must** be a valid JSON file. It can contain two\npossible formats:\n\n```json\n{\"level\": \"levelName\"}\n```\n\nor\n\n```json\n{\n  \"levels\": [\n    \"levelName\",\n    \"levelName\"\n  ]\n}\n```\n\nIn the first case, the single level will be applied to *all* loggers supplied\nat construction. In the second case, each level will be applied to the\ncorresponding logger in the loggers array. Note: if you supplied 5 loggers\nat construction, but only 3 in the file, then only the first 3 loggers will\nhave their levels changed. But be aware, Pino will change the level of child\nloggers when the parent logger's level is changed.\n\nAll level names **must** be valid level names as registered with the target Pino\ninstances.\n\n## License\n\n[MIT License](http://jsumners.mit-license.org/)\n","readmeFilename":"Readme.md"}