{"_id":"@asaidimu/utils-logger","_rev":"17-bb500cf171e2e5595ed239608a6fbf3f","name":"@asaidimu/utils-logger","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@asaidimu/utils-logger","version":"1.0.0","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"efa16022beb37e66dc8f4ea063ffa68d509bbd71","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.0.tgz","fileCount":7,"integrity":"sha512-SZtL4BpSD/R5Qf+q4wjUO7qcRUKl+D3wwAz88hj7/9txxLHPF8P31D9Srn2v47VXFn3+sHbKsrrL7h5mFXl3jQ==","signatures":[{"sig":"MEUCIQDiN/9fyR38uoKXv3A7z119zkClDh3w/xCShiq6xMM33wIgPe9GG1YH9Zm3TyBWJrZSy9TcYyeGnyxcxib2fkwPyVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953383},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"99fcd487762c6be722ff03d7c70f85a132ef6967","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.0_1781605080213_0.16715927872681968","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@asaidimu/utils-logger","version":"1.0.1","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"085bd4bad7b033796e74d6a1ffb2db5f9fe91c53","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.1.tgz","fileCount":7,"integrity":"sha512-iprpnCu/0Om3C3UJCd2x69gzfmtohE9QObXkdEkoFC1ifXvy2Y8tmDioTEhCZKSQZZ2c1r3bUZJdY35/ivnH7Q==","signatures":[{"sig":"MEUCIBry/sQMVz61L5ArMSiMF/DCVoLL8TdsAumJku/0C9XwAiEAoXEGpF+acENaBNhoMntrOWBkdMO0wef5NsSiB2xZYoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953144},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"b45c9ca357f63ea2e21c989dbb975d98e642c869","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.1_1781686127483_0.7057619562770692","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@asaidimu/utils-logger","version":"1.0.2","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"3f0215d6637e642ee09046b66a7af72c4e238c20","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.2.tgz","fileCount":7,"integrity":"sha512-ik01TYAtw+u0qBu/u1l2P4rvlK1H8eod6yoHeADJdF8MBIQ+OoFApM1J84LuD9rIxMTwIzWvrGdATe2u2y1EjQ==","signatures":[{"sig":"MEYCIQCkbe+/nO/mUzpubZLzJarXN5KjFLV76sTe9zXZW8tryAIhANiMLNBCQ0tlPyOT3r1qt0YhpMY8WN0Grph9fqM2sZkh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953144},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"1d99b693637386831d02371f02ed00b26361f7bf","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.2_1781690300633_0.4959227319071704","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@asaidimu/utils-logger","version":"1.0.3","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.3","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"2e14e3a202065bfcd0d56295ba5c972f2a08acbc","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.3.tgz","fileCount":7,"integrity":"sha512-dOCR+Ye8VGWhEFvyb3FqC3/+m4jkEPhoK6sWmhfMEYZqpyo5M3VoWZjCpn7qCpG4XHSpf5m0T9l7ENpEy5y2tA==","signatures":[{"sig":"MEUCIQDUOeLjZ1H7Nqum99JTU3gRak6MtpOy8Qk3MYqDBnN/bQIgF0oHUpTeD1EJ6y2g4J+6AG0EaDBFHR5UOSuzIUHtrEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953628},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"9a6c94b4c167957c265e07317eec629ddacc8109","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.3_1781711348892_0.33660691580358004","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@asaidimu/utils-logger","version":"1.0.4","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.4","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"d4adec6ef2cdf70fbb52af73f8719dc45ef1dbda","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.4.tgz","fileCount":7,"integrity":"sha512-+BQuVIgHRyu/H2ufBpYGCPxcJlwNenoQFVr5sHbWU4u2b/IB+4jd5WvkiH99YSbtsdCXx6Arz3cy7Oz6TrPqFQ==","signatures":[{"sig":"MEYCIQDGOlx2S6TlDdR86W4bZhduNvDJvcoP110F2lzJdfk9FwIhAJp1KsOB95mhPGE0iYE8NEf31TYg/VVBv0wMSC6NQMkW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953540},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"e34335c09e79c6ef30e1d3f9fd804fb229f34bc4","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.4_1781764023949_0.879538853386272","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@asaidimu/utils-logger","version":"1.0.5","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.5","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"6f088d925956d1e47383579a791f80a553d22213","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.5.tgz","fileCount":7,"integrity":"sha512-jZp2NJkuYWSLLEmeyPcZV8io2rsgL4VSWPnO1Zb8+RFRVsF2gMhnUdtNyZuIl4tiK9Mw6JVHcOUb7cAJGZxRDA==","signatures":[{"sig":"MEQCIBPcUzD1mNOZSZFA/HStwYE09VOJlHYZ6WZ6SIsE5bgFAiBEHdZTLB1SYFbEA/RuSvVJeVmdR9opiV/EgHjMQLJdQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869994},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"7d608e9b523eb7218b27d66adbca3818ab859245","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.5_1782113570428_0.5894531219994841","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@asaidimu/utils-logger","version":"1.0.6","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.6","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"99848cba4a7358a106321ece894f4f1ad6fea94e","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.6.tgz","fileCount":7,"integrity":"sha512-ScIE9vS720rL3rkesoO3n1hK+HE+z1miTcuF3QQ2NMeebQrRNkpTF3vxfNmT7EjvkjelkWycd5rtAWgMJGjkPg==","signatures":[{"sig":"MEYCIQCjcvB9nvCkVe8w8fiR9kW7EWmIRSAMghNOlm5WJr1GLQIhAPR3mHYigAOwTTMBWRJBEHodbHiHMwZE5SMGlrtZ3r5P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869994},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"ad90854def698c35e62d31b075d3920033d0f545","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.3"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.6_1782114843701_0.8566865677764068","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@asaidimu/utils-logger","version":"1.0.7","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.7","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"fb4c146a084c251c61ce46c8b997aa93e43e2e22","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.7.tgz","fileCount":7,"integrity":"sha512-qAYSc0wzJCZxJsj8JYDKH4BmyXNQmMl8T7L2oDqeCOPFTg59b/KS5Xqo0d0kBmJ3efT4J2wMpJwquyHFqQPoBw==","signatures":[{"sig":"MEUCIQD183yvOfv/c90s2MyPAJ24Iysu836GXsRXWwpGeeLbfgIganAMPf5f/WgLImOdtb66wJKTTDd7m/piujCvQhJ2qpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869994},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"0be1cb97d5ecdc73447c1f3d44e7830cf769800f","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.7_1782115525400_0.38395781236009063","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@asaidimu/utils-logger","version":"1.0.8","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.8","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"9d83a3868fd0a37dc79dc920a4eafc7d8f34933c","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.8.tgz","fileCount":7,"integrity":"sha512-wyN+VyseqvIyfbrpgoqYNqY0Y7BuZxXSc6RUWrYa8Ph+pC5p5U0YMU7JHUhA1Vo/qPWCV9YYe9v4/pN76dRFgQ==","signatures":[{"sig":"MEYCIQCoNlop7JB4gESwPOGMNertwKesfh/5wmsWQKY03DDq0wIhAOVN06apKS4Dp+/JjYn4bP3RmvF/tku9ySuJQHtcxE+J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869993},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"8d6880d878f7cf8fe020eff3d97c515b80bb33fc","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"1.1.4"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.5"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.8_1782224027795_0.6805997758148135","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@asaidimu/utils-logger","version":"1.0.9","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.9","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"6c188a34f8ba59758b616eccecb018cdea73919a","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.9.tgz","fileCount":7,"integrity":"sha512-NcjsuBwW8DYtBUVUdqBe79tB0TNinQvPLt3fNxmaEwwhAvrp6855t5VUmcwuL70Fbd+Vl52OdE1MT47dFylAvg==","signatures":[{"sig":"MEUCIQD+9YpDAD/TQZL1n5xX50xcsN+EBrj6baOcnAqrCpWuCwIgMfZhRld9OkmJP61l4OHo4ehNQBlBuwT8JMhlzOhIfX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869994},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"bec898ff3902344567fb8acc26f51da7d8dce0e4","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.6"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.9_1782229138631_0.2648758516669949","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@asaidimu/utils-logger","version":"1.0.10","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.10","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"aeb6e8b6ae0f812d9c08a8f2b7208da041aa3c31","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.10.tgz","fileCount":7,"integrity":"sha512-utiYPu28PvjOaHtR7ymyIr03lRKqZOrGCRUV2NFwjTDjcarCnSSyfU7cZqqifz1P6uMphUWhGR81ThsbMThmSw==","signatures":[{"sig":"MEQCIH0//xLmUY9oZCZhTNx5jSB5jwafHtuAJE5Fq71XJ4K/AiBR63B47hIAE1DFaM4WKL+BBFmhTuZyakFRzabC3DXinQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":877931},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"8bf5ebe9c7932cb4d1a27d01114b44ef781bc776","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.7"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.10_1782313541904_0.10653611498781612","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@asaidimu/utils-logger","version":"1.0.11","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.11","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"d0be9161af5906bdea0898da474dcaa8d4823f1a","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.11.tgz","fileCount":7,"integrity":"sha512-0Yd4gBzFF+zSX9wHR6zD9+68zn6CujyY8/n/oBagbbk1DjyfhI3IjYI6PfzNTQ+QlHF11WzBkm1e0qDGN6xKoQ==","signatures":[{"sig":"MEQCIBUzqyTM00rMmMqevUSkxm3LDBbMbf4GLssKhZStcFwPAiA7q4dWQ5Aadqf2hcL+DRrUV3xi5lQJPtQMc38x8Dq5bA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":877931},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"3e991882c6ea2e16412b0d3437d1eef11b55c7e9","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.7"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.11_1782397439504_0.338541209683795","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@asaidimu/utils-logger","version":"1.0.12","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.12","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"afa3f560222e4e322e8a0c2044579d7081edfc76","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.12.tgz","fileCount":7,"integrity":"sha512-x0MIadxG6fsQ2qcq0qJry2aXzAfYGWw5+WGxzlUdyAemN02KabtYLTjYCsCTOBu4lXdJEDLmMwQCUUYdrevdew==","signatures":[{"sig":"MEQCICsEQaZ0MPo4C/k4vv5yUmC0eqKkvrsjsewI9f7+gkbqAiBxUzu3kA8MKDdKPj0svHh3Z/epZ7aKm/NrhvUIH7wimQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53818},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"680cc89765aa73d4b6aa2f36325aeafe32542fd6","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.8"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.12_1783754485842_0.46601018599482824","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@asaidimu/utils-logger","version":"1.0.13","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.13","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"ec7f498970a422e4daa9526250db9680fce7200a","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.13.tgz","fileCount":7,"integrity":"sha512-J2OJwbsbPvPQGq6DLQejZf2Nc7R41ymVXCUlA3iPKG7YqiU/0CT99kUaa6J/KYT9hY0mWCXc18DMS5Le7lOmJg==","signatures":[{"sig":"MEQCIEGZqEseoIoRuqI3bVUcBYn8v6TkJgUfNG3cgnsr/MrVAiBDPSWoXZ1OKEQP1+jE2Kud0mR6Dk39WtMBg0/D8OTLLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76663},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"16b74a924ab3c66a255c264e5e44f969cb42bb2b","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.9"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.13_1783861790720_0.5968168726984766","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@asaidimu/utils-logger","version":"1.0.14","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@1.0.14","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"5f58aa633f78c7844ccf3fcfd99b977c79f2636d","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-1.0.14.tgz","fileCount":7,"integrity":"sha512-wuGEpgTlSK2E9BalhXRYYLBxf9BZLZ5PM8hLswvPBvI6KoaIUlTlW24yRwo+0wzIdI0fHFimaD+pMuqXq+Ov2g==","signatures":[{"sig":"MEUCIG3weN3vWAwfffW5g4XeA0iv85IRj7s+0t29iQOeppILAiEAgIdwFGf/W7FdU+R8Nu0wEt4k51zEGtd/b9ZBu3Xg7Hk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76664},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"f7d7000d81aceb037530441b63deadcdc6ba5fb3","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.10"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_1.0.14_1783863107259_0.16748700334524536","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@asaidimu/utils-logger","version":"2.0.0","keywords":["typescript","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-logger@2.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"278991d469dac1e9d439d9b362905e1a9363234b","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-2.0.0.tgz","fileCount":7,"integrity":"sha512-EtOOEM85VRdqckRsyQ4RuxOlq8KFG8K2AETCEATQFA/vWr0T7nSXFVH2mFCR2szpDvCf0cNB4WdViCqbeLDEEQ==","signatures":[{"sig":"MEYCIQDhM0XaxP4xXneGts8CwTGJgKQ6BKRI/j2IUi8Op14h4AIhAP9YMQPEZk8BYwAMe0l68X3KKKskyVaRIlSo5adedTxb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76663},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"8e341665e81db9b82a53fe256b53869c9ec703bd","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"1.2.11"},"_npmOperationalInternal":{"tmp":"tmp/utils-logger_2.0.0_1788167492708_0.40900152233841336","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"_id":"@asaidimu/utils-logger@2.0.1","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"2240f93f2d9c0eee9fa0a8f5a4fda6849697b851","tarball":"https://registry.npmjs.org/@asaidimu/utils-logger/-/utils-logger-2.0.1.tgz","fileCount":7,"integrity":"sha512-9YAiHpidGHhXO6Hem1y6HehmgMwtF3uUM8eD+HONdAXMbRmJWENMqs6IL/fWQSjvz8k26TljtFm3jGCFYdglEw==","signatures":[{"sig":"MEUCIA1lnikQ89jNz8C9x/jhyBEoX5Bc4IfXbCghUqpTY2iIAiEA0j6RWBf6pM2zvzLq5Zzt117xaXAXXyHCAwXGeFDQPhI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHEQqrXMTV0gh7WgSy6ceek4DsmPzgKWhi114DDzaVmWAiBq3v2zhMo23zCCER4zx3VFIEAWsUq9Js6fx+9kqNGNGQ=="}],"unpackedSize":76662},"main":"index.js","name":"@asaidimu/utils-logger","types":"index.d.ts","author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"71fd88ed4c5b8a5d2acb5ffc67374ce023bef4e3","license":"MIT","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-logger v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"version":"2.0.1","_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","keywords":["typescript","utility"],"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A collection of logger utilities.","directories":{},"maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"@asaidimu/utils-error":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"ws":"^8.21.0","@asaidimu/utils-events":"2.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/utils-logger_2.0.1_1789153651966_0.023150479804382895"}}},"time":{"created":"2026-06-16T10:18:00.010Z","modified":"2026-09-11T19:07:32.281Z","1.0.0":"2026-06-16T10:18:00.378Z","1.0.1":"2026-06-17T08:48:47.650Z","1.0.2":"2026-06-17T09:58:20.792Z","1.0.3":"2026-06-17T15:49:09.064Z","1.0.4":"2026-06-18T06:27:04.157Z","1.0.5":"2026-06-22T07:32:50.585Z","1.0.6":"2026-06-22T07:54:03.880Z","1.0.7":"2026-06-22T08:05:25.654Z","1.0.8":"2026-06-23T14:13:48.022Z","1.0.9":"2026-06-23T15:38:58.772Z","1.0.10":"2026-06-24T15:05:42.104Z","1.0.11":"2026-06-25T14:23:59.647Z","1.0.12":"2026-07-11T07:21:25.964Z","1.0.13":"2026-07-12T13:09:50.851Z","1.0.14":"2026-07-12T13:31:47.414Z","2.0.0":"2026-08-31T09:11:32.850Z","2.0.1":"2026-09-11T19:07:32.060Z"},"bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/logger#readme","keywords":["typescript","utility"],"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"description":"A collection of logger utilities.","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"readme":"# @asaidimu/utils-logger\n\nA robust, structured logging library for TypeScript/JavaScript applications. It provides a context-aware logger with support for multiple sinks (console, event bus, custom destinations), hierarchical child loggers, and advanced error formatting—all designed to simplify observability in complex systems.\n\n---\n\n## Features\n\n- **Structured Logging** – Logs are consistent objects with `level`, `event`, `timestamp`, `data`, and `context` fields.\n- **Log Levels** – `trace`, `debug`, `info`, `warn`, `error` with priority filtering.\n- **Context Propagation** – Attach contextual metadata to a logger; child loggers inherit and merge context.\n- **Pluggable Sinks** – Send logs to one or multiple destinations (console, event bus, files, etc.).\n- **Built‑in Sinks** – `ConsoleSink` (stdout/stderr) and `EventBusSink` (integrates with an event bus).\n- **Fuzz Logger** – Generate random logs for testing and performance benchmarking.\n- **Error‑Aware** – Automatically extracts structured fields from `SystemError` and plain `Error` objects.\n- **Type‑Safe** – Written in TypeScript with full type definitions included.\n\n---\n\n## Installation\n\n```bash\nnpm install @asaidimu/utils-logger\n```\n\n> **Peer dependency**: `ws` (`^8.21.0`) is required if you use the `UnsecureWebSocketServerSink` with WebSocket‑based buses. Install it separately if needed.\n> **Peer dependency**: `@asaidimu/utils-events` (`^1.2.0`) is required if you use the `EventBusSink` Install it separately if needed.\n\n---\n\n## Quick Start\n\n```typescript\nimport { Logger, ConsoleSink } from \"@asaidimu/utils-logger\";\n\n// Create a logger that writes to the console\nconst logger = new Logger([new ConsoleSink()], {\n  app: \"my-service\",\n  environment: \"development\",\n});\n\n// Basic logging\nlogger.info(\"user_logged_in\", { userId: \"123\", ip: \"192.168.1.1\" });\n\n// Error logging\ntry {\n  // ...\n} catch (err) {\n  logger.error(\"database_query_failed\", err);\n}\n\n// Child logger with additional context\nconst childLogger = logger.child({ requestId: \"abc-123\" });\nchildLogger.debug(\"processing_payment\", { amount: 99.99 });\n```\n\n---\n\n## Core Concepts\n\n### Logger\n\nThe main entry point implementing the `SystemLogger` interface. It holds a set of sinks, a base context, and methods for each log level.\n\n### Sinks\n\nA sink is any object implementing the `LogSink` interface:\n\n```typescript\ninterface LogSink {\n  write(record: SystemLog): void | Promise<void>;\n}\n```\n\nWhen a log is emitted, it is passed to **all** registered sinks concurrently. If a sink returns a `Promise`, it is awaited (with `Promise.all`) but errors are swallowed to prevent logging failures from crashing the application.\n\n### Context\n\nContext is an arbitrary object attached to every log record. It is useful for adding static metadata like service name, environment, or trace IDs. Child loggers merge new context onto the parent’s context.\n\n---\n\n## Built‑in Sinks\n\n### ConsoleSink\n\nWrites formatted log lines to `stdout` or `stderr`. It automatically detects the runtime:\n\n- In Node.js, uses `process.stdout.write` / `process.stderr.write`.\n- In browsers, falls back to `console.log`, `console.error`, etc.\n\n**Options**\n\n| Option    | Type                                     | Description                                                                                             |\n| --------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------- |\n| `pipeMap` | `Partial<Record<LogLevel, ConsolePipe>>` | Override the output stream for specific levels (default: `warn`/`error` → `stderr`, others → `stdout`). |\n| `format`  | `(record: SystemLog) => string`          | Custom string formatter. Default produces `[ISO timestamp] LEVEL event ctx=... data=...`.               |\n\n**Example**\n\n```typescript\nconst consoleSink = new ConsoleSink({\n  pipeMap: { error: \"stdout\" }, // send errors to stdout\n  format: (r) => `[${r.level}] ${r.event}`,\n});\n```\n\n### EventBusSink\n\nRoutes logs to an event bus, either statically or dynamically. This is useful for cross‑component communication, WebSocket broadcasts, or centralised log aggregation.\n\n**Requirements**\n\n- An event bus that implements the `EventBus<TEventMap>` interface (from `@asaidimu/utils-events`). The event map defines the allowed event names and their payload shapes.\n\n**Static Routing** – All logs go to a fixed event name.\n\n```typescript\nimport { EventBusSink } from '@asaidimu/utils-logger';\n\nconst eventBus = /* your event bus instance */;\n\nconst sink = new EventBusSink(eventBus, {\n  event: 'system:log',          // static event name\n  map: (record) => ({           // optional mapping\n    level: record.level,\n    message: record.event,\n    timestamp: record.timestamp,\n    extra: record.data\n  })\n});\n```\n\n**Dynamic Routing** – Choose the event name per log record.\n\n```typescript\nconst sink = new EventBusSink(eventBus, {\n  resolve: (record) => {\n    // Route based on log level or event name\n    return record.level === \"error\" ? \"error:log\" : \"info:log\";\n  },\n  map: (record, eventName) => ({\n    // eventName is the resolved name\n    severity: record.level,\n    details: record.data,\n  }),\n});\n```\n\nThe sink guards against exceptions so that failures in event emission do not break the logging flow.\n\n---\n\n## Fuzz\n\nA helper class that generates random log entries at random intervals. Useful for load testing, demo environments, or stress‑testing your logging pipeline.\n\n```typescript\nimport { Fuzz } from \"@asaidimu/utils-logger\";\nimport { Logger, ConsoleSink } from \"@asaidimu/utils-logger\";\n\nconst realLogger = new Logger([new ConsoleSink()]);\nconst fuzz = new Fuzz(realLogger, {\n  minIntervalMs: 200,\n  maxIntervalMs: 1500,\n  allowedLevels: [\"info\", \"warn\", \"error\"],\n  eventRegistry: {\n    info: [\"user_login\", \"order_placed\", \"payment_success\"],\n    error: [\"db_timeout\", \"stripe_failure\"],\n  },\n});\n\n// Start emitting random logs every 200–1500ms\nfuzz.start();\n\n// Later, stop\nfuzz.stop();\n```\n\n**Options**\n\n| Option          | Type                                  | Default                                   | Description                                                                           |\n| --------------- | ------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------- |\n| `minIntervalMs` | `number`                              | `100`                                     | Minimum delay between logs (ms).                                                      |\n| `maxIntervalMs` | `number`                              | `1000`                                    | Maximum delay between logs (ms).                                                      |\n| `allowedLevels` | `LogLevel[]`                          | `['trace','debug','info','warn','error']` | Which levels may be emitted.                                                          |\n| `eventRegistry` | `Partial<Record<LogLevel, string[]>>` | `{}`                                      | Custom event name pools per level. If empty, random hacker‑style names are generated. |\n\n---\n\n## API Reference\n\n### `SystemLogger` Interface\n\n| Method                                       | Description                                                                 |\n| -------------------------------------------- | --------------------------------------------------------------------------- |\n| `trace(event: string, data?: object): void`  | Log at `trace` level.                                                       |\n| `debug(event: string, data?: object): void`  | Log at `debug` level.                                                       |\n| `info(event: string, data?: object): void`   | Log at `info` level.                                                        |\n| `log(event: string, data?: object): void`    | Alias for `info`.                                                           |\n| `warn(event: string, data?: object): void`   | Log at `warn` level.                                                        |\n| `error(event: string, data?: unknown): void` | Log at `error` level. `data` can be an `Error` object (see Error handling). |\n| `write(record: SystemLog): void`             | Write a pre‑constructed `SystemLog` record directly.                        |\n| `child(context: object): SystemLogger`       | Create a child logger with additional context (merged over parent).         |\n\n### `Logger` Class\n\nThe concrete implementation. Constructor:\n\n```typescript\nnew Logger(sinks: LogSink[], context?: object)\n```\n\nAll methods from `SystemLogger` are available.\n\n### `LogSink` Interface\n\n```typescript\ninterface LogSink {\n  write(record: SystemLog): void | Promise<void>;\n}\n```\n\nImplement this to create custom sinks (e.g., file, HTTP, Sentry, etc.).\n\n### `SystemLog` Structure\n\n| Field       | Type       | Description                                          |\n| ----------- | ---------- | ---------------------------------------------------- |\n| `level`     | `LogLevel` | Severity level.                                      |\n| `event`     | `string`   | Distinct event name (e.g., `\"user_login\"`).          |\n| `data`      | `object`   | (Optional) Payload specific to the log.              |\n| `context`   | `object`   | (Optional) Static metadata from the logger instance. |\n| `timestamp` | `number`   | Unix timestamp in milliseconds (auto‑generated).     |\n\n### `LogLevel`\n\n```typescript\ntype LogLevel = \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\";\n```\n\nPriority order (low to high): `trace` (10), `debug` (20), `info` (30), `warn` (40), `error` (50). The constant `LogLevelPriority` provides these numeric values.\n\n---\n\n## Error Handling\n\nWhen you pass an `Error` object (or any subclass) to `logger.error()`, the logger automatically extracts structured information:\n\n- For plain `Error`: it captures `name`, `message`, and `stack`.\n- For `SystemError` (from `@asaidimu/utils-error`): it additionally extracts `code`, `category`, `severity`, `path`, `operation`, `issues`, `httpStatus`, `action`, and `cause`.\n\nAll extracted fields are placed under the `error` key in the log’s `data` property, ensuring consistent error reporting across your system.\n\n---\n\n## License\n\nMIT © [Saidimu](https://github.com/asaidimu)\n\n---\n\n## Contributing & Issues\n\nFound a bug or want to suggest an improvement? Please open an issue on the [GitHub repository](https://github.com/asaidimu/erp-utils/issues).\n\nFor more details, visit the [homepage](https://github.com/asaidimu/erp-utils/tree/main/src/logger).\n","readmeFilename":"README.md"}