{"_id":"@atlex/log","_rev":"16-95bb78863c70e21990d855e80395addc","name":"@atlex/log","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.1":{"name":"@atlex/log","version":"0.1.1","keywords":["atlex","logging","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.1","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/atlex-monorepo/issues"},"dist":{"shasum":"dd159630e9f5beaff1d0d7c5bcaefdca753ea188","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.1.tgz","fileCount":100,"integrity":"sha512-qteSEctrXCepLeSJysAX6WiJpLqwVS4B8j6p09z9y10CFilq7x3GEF2QvklDI4S2MNRq/kJJliMQnSlQl0GelQ==","signatures":[{"sig":"MEUCIAJiswbXB05tq/1jSrzwaD08qL7sFMuOZs8Gh+pAay31AiEA510RiWqYQ2ylHCbLxYttsat5sixMaypQ/dYhsTmeTrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109763},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/0351dbb9a605fcc90b9d4aa9150caad3/atlex-log-0.1.1.tgz","_integrity":"sha512-qteSEctrXCepLeSJysAX6WiJpLqwVS4B8j6p09z9y10CFilq7x3GEF2QvklDI4S2MNRq/kJJliMQnSlQl0GelQ==","repository":{"url":"git+https://github.com/atlex-framework/atlex-monorepo.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.1","@atlex/config":"0.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.1","@atlex/config":"0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.1_1776194469739_0.2873060750415575","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atlex/log","version":"0.1.2","keywords":["atlex","logging","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.2","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"6873e8a619c18c9fdcc19d7601daad948915580b","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.2.tgz","fileCount":100,"integrity":"sha512-K1ra6kQZZaYY+eqLHdPGLt2brPzK3E+6nvk8VN/NKDLdAuj+3VlM2llLgpetULqwmevneFbENOfarKeGt6nUPQ==","signatures":[{"sig":"MEQCIAiJXRQ2Z0VOgsALlRFVYKWXTXrTbpqCCA6T+uZPFW/eAiAOGGkojTfTsftqOMvkrtdLHhcBx02dvik7BjJubIPGXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109869},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/67ced0f3cf490139f32a7f848db691fc/atlex-log-0.1.2.tgz","_integrity":"sha512-K1ra6kQZZaYY+eqLHdPGLt2brPzK3E+6nvk8VN/NKDLdAuj+3VlM2llLgpetULqwmevneFbENOfarKeGt6nUPQ==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.2","@atlex/config":"0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.2","@atlex/config":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.2_1776235379063_0.29983254136565907","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atlex/log","version":"0.1.3","keywords":["atlex","logging","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.3","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"16e8a3242cb1cf0a821034e6072d0cccd2fbb97d","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.3.tgz","fileCount":100,"integrity":"sha512-Q6/iLa825caJvZIMb+AwU9+GL8E3Ubsyswr+qUl5II2sX5rXe2bOVVTPnfBXCpSwHS+FaqZAN0wErPmjwow3xQ==","signatures":[{"sig":"MEUCIEBnU1+iwNU6frDCS7iXvvr3J7/Sb9dn97UE0CSMnaVLAiEAiXw+y5+PGqvewLf/ZYoigKbIM2BBPUEpTkz//0IY4Vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110010},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/0856b4de253c3629017f5f86356ec730/atlex-log-0.1.3.tgz","_integrity":"sha512-Q6/iLa825caJvZIMb+AwU9+GL8E3Ubsyswr+qUl5II2sX5rXe2bOVVTPnfBXCpSwHS+FaqZAN0wErPmjwow3xQ==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.3","@atlex/config":"0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.3","@atlex/config":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.3_1776256070216_0.1400319980535334","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@atlex/log","version":"0.1.4","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.4","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"4bb0ea7fc87284561935753929ca704e3b50b039","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.4.tgz","fileCount":100,"integrity":"sha512-kE8dm7cUv2YxU+vh7EsspN732+lxLUGc9xGlzpu2ZCfiPaFqIrYuypmaWU95qJuGPQoiOnfPPPEL6shiahUMgg==","signatures":[{"sig":"MEUCIDNzxpakS3yMcyjm0d6cSqDS30B6HJkHwWr/6qBhHLelAiEAw9x0cdQC+T/rhZK4gyHQU2p/0CF1DjR9eNCHIn79OPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110556},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/4099bd99908972ed7734aa56a4f7963d/atlex-log-0.1.4.tgz","_integrity":"sha512-kE8dm7cUv2YxU+vh7EsspN732+lxLUGc9xGlzpu2ZCfiPaFqIrYuypmaWU95qJuGPQoiOnfPPPEL6shiahUMgg==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.4","@atlex/config":"0.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.4","@atlex/config":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.4_1776259438367_0.4290646711269055","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@atlex/log","version":"0.1.5","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.5","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"c063167a52d79240b36562cbed5f74aefd69d43a","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.5.tgz","fileCount":100,"integrity":"sha512-kMtC5sHC5pBAN4gJl9xzpZy4r0hiDkhygQ/CttyBLGQSxVwOagN7oGGSGRs8VbVLAgGKhXX4HHGwGwW8CvboHQ==","signatures":[{"sig":"MEUCIBBQZ+OVgk4xfwzAgjTKAgn/mPQxCl9fiSAN3rsXKl2vAiEAxLjskYB9v19a7NlP7Q7NE/H9Ipdxtpt9WcJzx39QgwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110684},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/80e0f71463afd75daadb277a2c750ba8/atlex-log-0.1.5.tgz","_integrity":"sha512-kMtC5sHC5pBAN4gJl9xzpZy4r0hiDkhygQ/CttyBLGQSxVwOagN7oGGSGRs8VbVLAgGKhXX4HHGwGwW8CvboHQ==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.5","@atlex/config":"0.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.5","@atlex/config":"0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.5_1776260712337_0.36183287743640746","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@atlex/log","version":"0.1.6","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.6","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"fac7d15f99e6522bfe44fdf9281ccd0ef96fc4b0","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.6.tgz","fileCount":100,"integrity":"sha512-8QJLbEit5dWSP0XLaHDIyEOLG69dpgOv5UXLBthNWYGhmntmcDpfFb0rw9Umhk3yh7uIXQLx9Z+2uYMd2AopTw==","signatures":[{"sig":"MEUCIQCrrvlU2qcICNU7vtiEgZ1bCjXaxt0PF0Psu1G6uEnlaQIgNXpMxr5SGSbjSbXFdaKUrxBhb6I2Ps3Hj4cGH/vODeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110841},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/31e3f048dfc46777f85c7f4088dd6ada/atlex-log-0.1.6.tgz","_integrity":"sha512-8QJLbEit5dWSP0XLaHDIyEOLG69dpgOv5UXLBthNWYGhmntmcDpfFb0rw9Umhk3yh7uIXQLx9Z+2uYMd2AopTw==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.6","@atlex/config":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.6","@atlex/config":"0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.6_1778694346765_0.5778737250444435","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@atlex/log","version":"0.1.7","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.7","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"69098abc19b97dcb512db04c6fdef9a723958ebc","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.7.tgz","fileCount":100,"integrity":"sha512-m8kSZoy7yHfQPf716QNZefwit412WGaYNMEhzwP+ANMUcDbQuadu/smPFkN5zpsh5y+oXYFS0O0X+OKcY6D7Qw==","signatures":[{"sig":"MEQCIFTJm0a1vs/vJWF320rfNFhiGtiI19BX5EG8lSamY5yjAiAq3r0UTEye4Y3k0zy5ackBbDDH9km3ttU3zKHPnnVJtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111271},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/0c6eaf8ef5d6f7f5b5ab99d64f75572f/atlex-log-0.1.7.tgz","_integrity":"sha512-m8kSZoy7yHfQPf716QNZefwit412WGaYNMEhzwP+ANMUcDbQuadu/smPFkN5zpsh5y+oXYFS0O0X+OKcY6D7Qw==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.7","@atlex/config":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.7","@atlex/config":"0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.7_1778755073218_0.5939577337640181","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@atlex/log","version":"0.1.8","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.8","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"9b36ba93d3358e9899554e0a2eeb33ca8155bbfe","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.8.tgz","fileCount":100,"integrity":"sha512-JvlH894dvm8/OTvMiovvvASTeeu21QpRFy+W3cB99QfFYAhMB4XM6XxoTxSxo8BEbBDV/fYNdOTpCDpfxwXaXQ==","signatures":[{"sig":"MEQCIGbe+Z1BzGnUKkpMQviQFIkNJCO7wwDvvrPOnyYl3EngAiBIsBelqYcxZH7koH8+r8GsgNB1MdEDmhfQWFGPTMWQgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111402},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/03f68f9c16fc5641dd05ace63a7e1457/atlex-log-0.1.8.tgz","_integrity":"sha512-JvlH894dvm8/OTvMiovvvASTeeu21QpRFy+W3cB99QfFYAhMB4XM6XxoTxSxo8BEbBDV/fYNdOTpCDpfxwXaXQ==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.8","@atlex/config":"0.1.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.8","@atlex/config":"0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.8_1778775513986_0.1494616361175296","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@atlex/log","version":"0.1.9","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.9","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"aad72a02f622a0ad55385f95e754ad82c2780e85","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.9.tgz","fileCount":100,"integrity":"sha512-wekXHa7bQOCOV6ivD7cJRUBcgny/lsi75cqznrWIdt4jGm27RC+e/QnBEmVYfLRrwaJesxlnXwbFIXpqiw5lSQ==","signatures":[{"sig":"MEQCICVCIoXQzzO7sxshmYyAbnvywRug9d6VCNGQDIHGirydAiAn6nwacllIIxnQ/P/SH4PXuszJaTxLj1qtgOySGV3Amw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111545},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/058a8034188cfbedd5e606bb4f089e63/atlex-log-0.1.9.tgz","_integrity":"sha512-wekXHa7bQOCOV6ivD7cJRUBcgny/lsi75cqznrWIdt4jGm27RC+e/QnBEmVYfLRrwaJesxlnXwbFIXpqiw5lSQ==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.9","@atlex/config":"0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.9","@atlex/config":"0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.9_1778830238149_0.7799765224973001","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@atlex/log","version":"0.1.10","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.10","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"7977a603e363e8eca638c437e812798b071b7a64","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.10.tgz","fileCount":100,"integrity":"sha512-CtAYD9p3biBzGeW5xab9f2k7tGlcG1o3+87zuPUhPfHT1+gPx0KO3SqICkABWMNK8z/NkgdDGI6sIp6jmrHDPQ==","signatures":[{"sig":"MEYCIQDuQ6mrmMtIXpxp4k3nv6QmYe4n4IQJEzJbstXAYYqUAwIhAO1TlSLZjqrs/+4bUTivZFOgndrF3xKOeMx5HFbp5XTT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111683},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/9dc890d277c318edea7179af4221fe2a/atlex-log-0.1.10.tgz","_integrity":"sha512-CtAYD9p3biBzGeW5xab9f2k7tGlcG1o3+87zuPUhPfHT1+gPx0KO3SqICkABWMNK8z/NkgdDGI6sIp6jmrHDPQ==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.7","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@atlex/core":"0.1.10","@atlex/config":"0.1.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.10","@atlex/config":"0.1.10"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.10_1778834098097_0.8104183859635661","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@atlex/log","version":"0.1.11","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.1.11","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"a80328b84299e7fd65ddb9d7220d20093438b789","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.1.11.tgz","fileCount":100,"integrity":"sha512-7hZ4P5PvgsWY6x0EeaGZXFNY06HJaKDIwwnN0mVAfDy7BeUEp1sZQnz2pt+yFV9YgNZ+Xi/QRf7e0m+BhOQHmA==","signatures":[{"sig":"MEQCIC1UcUWlud2IZJurhBjJB+2ob4S2X6hfqj99+MDcDrzqAiBAIRE5BPq8NZyMGLoX2//+r2BUbFefD/TozEpBBo39hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111814},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.1.11.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/2fcad03757a28af4a7e69fe8670ff5c7/atlex-log-0.1.11.tgz","_integrity":"sha512-7hZ4P5PvgsWY6x0EeaGZXFNY06HJaKDIwwnN0mVAfDy7BeUEp1sZQnz2pt+yFV9YgNZ+Xi/QRf7e0m+BhOQHmA==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.8","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@atlex/core":"0.1.11","@atlex/config":"0.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":"0.1.11","@atlex/config":"0.1.11"},"_npmOperationalInternal":{"tmp":"tmp/log_0.1.11_1780144950127_0.8898975348957101","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@atlex/log","version":"0.2.0","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.2.0","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"278973ff72841c70eaf8a406492f0dc18eccd207","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.2.0.tgz","fileCount":100,"integrity":"sha512-a6sCbnDqlyIHFQ5qqVW33FJuEZFt2V5KH4hzR226/gRAVPDoHfufsnTYFv+QMDvW7plXd5g59MhGfq0SwAuEcQ==","signatures":[{"sig":"MEQCICPLZN9ODrsarlYgJNcu1fF3xrU5Ujuej9sUzDo7KFGYAiBxslOQ9sQQbqMxde7dTq7g1NkV08ZEGzfbaCjbEPtPVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113031},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/f513df603a6db957a6ab076df79ea69a/atlex-log-0.2.0.tgz","_integrity":"sha512-a6sCbnDqlyIHFQ5qqVW33FJuEZFt2V5KH4hzR226/gRAVPDoHfufsnTYFv+QMDvW7plXd5g59MhGfq0SwAuEcQ==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.8","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@atlex/core":"0.2.0","@atlex/config":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":">=0.2.0","@atlex/config":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/log_0.2.0_1780306537532_0.48449245763109494","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@atlex/log","version":"0.2.1","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"author":{"url":"https://github.com/khamazaspyan","name":"Karen Hamazaspyan"},"license":"MIT","_id":"@atlex/log@0.2.1","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"dist":{"shasum":"7e7591f9acba6a37bb8125c3388e06337039e26d","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.2.1.tgz","fileCount":100,"integrity":"sha512-xpTemOlp4iTmxJ5eCBswNfZ9a+7vvUyEI9Yk7OhJnnAIdNsJvRXq9W8CpJJ6+vaQKY0Rzdl4DiucPVy0R8L9RA==","signatures":[{"sig":"MEUCIBldw2/sKucpURrH7n6FpOnHBMGEedJl1Fgdo6SQazJbAiEAh81exeVhebFx2lf8Af4+S8QMmjswwvc62oI0q/Pos/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113174},"main":"./dist/index.js","type":"module","_from":"file:atlex-log-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"_resolved":"/tmp/aa0b2ec2253f7acb16f704b98cb33fbf/atlex-log-0.2.1.tgz","_integrity":"sha512-xpTemOlp4iTmxJ5eCBswNfZ9a+7vvUyEI9Yk7OhJnnAIdNsJvRXq9W8CpJJ6+vaQKY0Rzdl4DiucPVy0R8L9RA==","repository":{"url":"git+https://github.com/atlex-framework/log.git","type":"git","directory":"packages/log"},"_npmVersion":"10.9.8","description":"Structured logging for Atlex","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@atlex/core":"0.2.1","@atlex/config":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.0.0","@types/node":"^20.0.0"},"peerDependencies":{"@atlex/core":">=0.2.1","@atlex/config":">=0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/log_0.2.1_1780423653891_0.007943731722584113","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@atlex/log","version":"0.2.2","description":"Structured logging for Atlex","type":"module","license":"MIT","author":{"name":"Karen Hamazaspyan","url":"https://github.com/khamazaspyan"},"keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"engines":{"node":">=20"},"repository":{"type":"git","url":"git+https://github.com/atlex-framework/log.git","directory":"packages/log"},"homepage":"https://atlex.dev","bugs":{"url":"https://github.com/atlex-framework/log/issues"},"publishConfig":{"access":"public"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"peerDependencies":{"@atlex/config":">=0.2.2","@atlex/core":">=0.2.2"},"dependencies":{"@atlex/config":"0.2.2","@atlex/core":"0.2.2"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.0.0","vitest":"^3.2.4"},"scripts":{"build":"tsc -p tsconfig.json","lint":"tsc --noEmit -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","test":"vitest run -c vitest.config.ts"},"_id":"@atlex/log@0.2.2","_integrity":"sha512-Uc3PCYunCb/Deehl3ezOhyt3LbOQ+XYAoImnkcvMhFgxn+wEPCH+x9lRDuyNMV7YJyXHXMG8egcfCzMrzSWcbA==","_resolved":"/tmp/4c1a989d907e3d8d2e21b803b99a398f/atlex-log-0.2.2.tgz","_from":"file:atlex-log-0.2.2.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-Uc3PCYunCb/Deehl3ezOhyt3LbOQ+XYAoImnkcvMhFgxn+wEPCH+x9lRDuyNMV7YJyXHXMG8egcfCzMrzSWcbA==","shasum":"c971866ea460ddb16a011cb06ce6a4d65632fab2","tarball":"https://registry.npmjs.org/@atlex/log/-/log-0.2.2.tgz","fileCount":100,"unpackedSize":113313,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHbIcgO0lNpLD6TQcZloB1p3qyvVqAK8owY1nW5TAywVAiAAiuo5U5lABdWfD3L2/rxWvFaEXHIu7dAmeevfCSOU8g=="}]},"_npmUser":{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"},"directories":{},"maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/log_0.2.2_1784391583794_0.6394201746653996"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-14T19:21:09.277Z","modified":"2026-07-18T16:19:44.094Z","0.1.0-beta":"2026-04-11T21:23:16.443Z","0.1.1":"2026-04-14T19:21:09.884Z","0.1.2":"2026-04-15T06:42:59.209Z","0.1.3":"2026-04-15T12:27:50.357Z","0.1.4":"2026-04-15T13:23:58.502Z","0.1.5":"2026-04-15T13:45:12.482Z","0.1.6":"2026-05-13T17:45:46.942Z","0.1.7":"2026-05-14T10:37:53.370Z","0.1.8":"2026-05-14T16:18:34.128Z","0.1.9":"2026-05-15T07:30:38.309Z","0.1.10":"2026-05-15T08:34:58.296Z","0.1.11":"2026-05-30T12:42:30.263Z","0.2.0":"2026-06-01T09:35:37.661Z","0.2.1":"2026-06-02T18:07:34.030Z","0.2.2":"2026-07-18T16:19:43.932Z"},"bugs":{"url":"https://github.com/atlex-framework/log/issues"},"author":{"name":"Karen Hamazaspyan","url":"https://github.com/khamazaspyan"},"license":"MIT","homepage":"https://atlex.dev","keywords":["atlex","logging","logger","log","structured-logging","log-rotation","daily-rotation","file-logging","console-logging","multi-channel-logging","winston-alternative","pino-alternative","laravel-logging","laravel-alternative","nodejs","javascript","typescript"],"repository":{"type":"git","url":"git+https://github.com/atlex-framework/log.git","directory":"packages/log"},"description":"Structured logging for Atlex","maintainers":[{"name":"khamazaspyan","email":"khamazaspyan@gmail.com"}],"readme":"# @atlex/log\n\n> Multi-channel structured logging with console, file, and daily rotation drivers.\n\n[![npm](https://img.shields.io/npm/v/@atlex/log.svg?style=flat-square&color=7c3aed)](https://www.npmjs.com/package/@atlex/log)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-7c3aed.svg?style=flat-square)](https://www.typescriptlang.org/)\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-Support-yellow?style=flat-square&logo=buy-me-a-coffee)](https://buymeacoffee.com/khamazaspyan)\n\n## Installation\n\n```bash\nnpm install @atlex/log\n# or\nyarn add @atlex/log\n```\n\n## Quick Start\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { ConsoleDriver } from '@atlex/log'\n\nconst manager = new LogManager()\nmanager.channel('default', new ConsoleDriver())\n\nconst logger = manager.channel('default')\n\nlogger.info('Application started')\nlogger.error('Something went wrong', { error: 'details' })\n```\n\n## Features\n\n- **Multi-Channel Logging**: Configure different drivers for different channels\n- **Structured Logging**: Log with contextual data and metadata\n- **Multiple Log Levels**: Debug, info, notice, warning, error, critical, alert, emergency\n- **File Rotation**: Automatic daily log file rotation\n- **Multiple Drivers**: Console, file, daily rotation, stack, fanout, and null drivers\n- **Custom Formatters**: Line, JSON, and pretty-print formatters\n- **Context Preservation**: Attach context to all logs within a scope\n- **Async Flushing**: Flush pending logs before shutdown\n\n## Basic Logging\n\n### Log Levels\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { ConsoleDriver } from '@atlex/log'\n\nconst manager = new LogManager()\nconst logger = manager.channel('default', new ConsoleDriver())\n\n// Different log levels\nlogger.debug('Debug information', { userId: 123 })\nlogger.info('User logged in', { email: 'user@example.com' })\nlogger.notice('Configuration reloaded')\nlogger.warning('Cache miss for key', { key: 'user:456' })\nlogger.error('Database query failed', { query: 'SELECT ...', error: 'Connection lost' })\nlogger.critical('Payment processing failed', { orderId: 'ORD-123' })\nlogger.alert('Security: Suspicious login attempt', { ip: '192.168.1.1' })\nlogger.emergency('System is shutting down', { reason: 'OOM' })\n```\n\n### Generic Logging\n\n```typescript\nimport { LogLevel } from '@atlex/log'\n\nconst logger =\n  /* ... */\n\n  // Log at a specific level\n  logger.log(LogLevel.Warning, 'Custom message', { custom: 'data' })\n```\n\n## Console Driver\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { ConsoleDriver } from '@atlex/log'\nimport { LineFormatter, PrettyFormatter, JsonFormatter } from '@atlex/log'\n\nconst manager = new LogManager()\n\n// With default formatter (LineFormatter)\nconst driver = new ConsoleDriver()\n\n// With custom formatter\nconst prettyDriver = new ConsoleDriver({\n  formatter: new PrettyFormatter(),\n})\n\nconst jsonDriver = new ConsoleDriver({\n  formatter: new JsonFormatter(),\n})\n\nmanager.channel('default', driver)\nmanager.channel('json-logs', jsonDriver)\n```\n\n## File Driver\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { FileDriver } from '@atlex/log'\nimport path from 'path'\n\nconst manager = new LogManager()\n\nconst fileDriver = new FileDriver({\n  path: path.join(__dirname, '../logs/application.log'),\n  mode: 'append', // or 'truncate'\n})\n\nmanager.channel('file', fileDriver)\nconst logger = manager.channel('file')\n\nlogger.info('This will be written to file')\n```\n\n## Daily Driver\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { DailyDriver } from '@atlex/log'\nimport path from 'path'\n\nconst manager = new LogManager()\n\n// Automatically creates logs/application-2024-03-15.log\nconst dailyDriver = new DailyDriver({\n  directory: path.join(__dirname, '../logs'),\n  filename: 'application',\n  days: 7, // Keep logs for 7 days\n})\n\nmanager.channel('daily', dailyDriver)\nconst logger = manager.channel('daily')\n\nlogger.info('Logged to daily file')\n```\n\n## Stack Driver\n\nStack driver sends logs to multiple drivers simultaneously:\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { StackDriver, ConsoleDriver, FileDriver } from '@atlex/log'\nimport path from 'path'\n\nconst manager = new LogManager()\n\nconst stackDriver = new StackDriver([\n  new ConsoleDriver(),\n  new FileDriver({\n    path: path.join(__dirname, '../logs/app.log'),\n  }),\n])\n\nmanager.channel('stack', stackDriver)\nconst logger = manager.channel('stack')\n\n// Logs to both console and file\nlogger.info('Log to all drivers')\n```\n\n## Fanout Logger Driver\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { FanoutLoggerDriver, ConsoleDriver } from '@atlex/log'\n\nconst manager = new LogManager()\n\n// Route different channels through a fanout driver\nconst fanoutDriver = new FanoutLoggerDriver({\n  default: new ConsoleDriver(),\n  error: new ConsoleDriver(),\n})\n\nmanager.channel('fanout', fanoutDriver)\n```\n\n## Context Management\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { ConsoleDriver } from '@atlex/log'\n\nconst manager = new LogManager()\nconst logger = manager.channel('default', new ConsoleDriver())\n\n// Add context to logger instance\nconst contextLogger = logger.withContext({\n  requestId: 'req-12345',\n  userId: 'user-67890',\n})\n\n// All logs from this instance include the context\ncontextLogger.info('Processing request')\ncontextLogger.error('Request failed')\n\n// Original logger is unaffected\nlogger.info('This has no context')\n```\n\n## Formatters\n\n### Line Formatter (Default)\n\n```typescript\nimport { LineFormatter } from '@atlex/log'\n\nconst formatter = new LineFormatter()\n\n// Output: [2024-03-15 14:30:45] INFO - User logged in\n```\n\n### JSON Formatter\n\n```typescript\nimport { JsonFormatter } from '@atlex/log'\n\nconst formatter = new JsonFormatter()\n\n// Output: {\"timestamp\":\"2024-03-15T14:30:45.000Z\",\"level\":\"info\",\"message\":\"User logged in\"}\n```\n\n### Pretty Formatter\n\n```typescript\nimport { PrettyFormatter } from '@atlex/log'\n\nconst formatter = new PrettyFormatter()\n\n// Output: Colorized, formatted output with context\n```\n\n## Advanced Configuration\n\n### Multi-Channel Setup\n\n```typescript\nimport { LogManager, LogLevel } from '@atlex/log'\nimport { ConsoleDriver, FileDriver, DailyDriver } from '@atlex/log'\nimport { LineFormatter, JsonFormatter } from '@atlex/log'\nimport path from 'path'\n\nconst manager = new LogManager()\n\n// Console channel for development\nmanager.channel(\n  'default',\n  new ConsoleDriver({\n    formatter: new LineFormatter(),\n  }),\n)\n\n// File channel for application logs\nmanager.channel(\n  'app',\n  new FileDriver({\n    path: path.join(__dirname, '../logs/app.log'),\n  }),\n)\n\n// Daily channel for archival\nmanager.channel(\n  'daily',\n  new DailyDriver({\n    directory: path.join(__dirname, '../logs'),\n    filename: 'application',\n    days: 30,\n  }),\n)\n\n// JSON channel for log aggregation services\nmanager.channel(\n  'json',\n  new ConsoleDriver({\n    formatter: new JsonFormatter(),\n  }),\n)\n\n// Error-only channel\nconst errorLogger = manager.channel('default').withContext({ channel: 'errors' })\n\nexport const logger = manager.channel('default')\nexport const fileLogger = manager.channel('app')\nexport const jsonLogger = manager.channel('json')\n```\n\n### Using LogManager in Services\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { ConsoleDriver } from '@atlex/log'\n\nclass UserService {\n  constructor(private logger: Logger) {}\n\n  async createUser(email: string) {\n    this.logger.info('Creating user', { email })\n\n    try {\n      // Create user logic\n      this.logger.info('User created', { email, userId: 'user-123' })\n    } catch (error) {\n      this.logger.error('Failed to create user', {\n        email,\n        error: error.message,\n      })\n      throw error\n    }\n  }\n}\n\n// Dependency injection\nconst manager = new LogManager()\nconst logger = manager.channel('default', new ConsoleDriver())\n\nconst userService = new UserService(logger)\n```\n\n## Null Driver\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { NullDriver } from '@atlex/log'\n\nconst manager = new LogManager()\n\n// Disable logging for a channel\nmanager.channel('disabled', new NullDriver())\n```\n\n## Flushing Logs\n\n```typescript\nimport { LogManager } from '@atlex/log'\nimport { ConsoleDriver } from '@atlex/log'\n\nconst manager = new LogManager()\nconst logger = manager.channel('default', new ConsoleDriver())\n\nlogger.info('Important message')\n\n// Flush pending logs before exit\nawait logger.flush()\n\nprocess.exit(0)\n```\n\n## Complete Application Example\n\n```typescript\nimport { LogManager, LogLevel } from '@atlex/log'\nimport { ConsoleDriver, DailyDriver, StackDriver, LineFormatter, JsonFormatter } from '@atlex/log'\nimport path from 'path'\n\nclass Application {\n  private manager: LogManager\n  private logger: Logger\n  private errorLogger: Logger\n\n  constructor() {\n    this.manager = new LogManager()\n    this.setupLogging()\n  }\n\n  private setupLogging() {\n    const env = process.env.NODE_ENV || 'development'\n\n    // Daily file logging\n    const dailyDriver = new DailyDriver({\n      directory: path.join(__dirname, '../logs'),\n      filename: 'application',\n      days: 30,\n    })\n\n    // Console logging (always on)\n    const consoleDriver = new ConsoleDriver({\n      formatter: env === 'production' ? new JsonFormatter() : new LineFormatter(),\n    })\n\n    // Stack: both console and file\n    const stackDriver = new StackDriver([consoleDriver, dailyDriver])\n\n    this.manager.channel('default', stackDriver)\n    this.manager.channel(\n      'error',\n      new StackDriver([\n        consoleDriver,\n        new DailyDriver({\n          directory: path.join(__dirname, '../logs'),\n          filename: 'error',\n          days: 7,\n        }),\n      ]),\n    )\n\n    this.logger = this.manager.channel('default')\n    this.errorLogger = this.manager.channel('error')\n  }\n\n  async start() {\n    this.logger.info('Application starting', {\n      env: process.env.NODE_ENV,\n      version: '1.0.0',\n    })\n\n    try {\n      // Application logic\n      this.logger.info('Application ready', {\n        port: 3000,\n      })\n    } catch (error) {\n      this.errorLogger.critical('Fatal error', {\n        error: error.message,\n        stack: error.stack,\n      })\n      await this.logger.flush()\n      process.exit(1)\n    }\n  }\n\n  async shutdown() {\n    this.logger.info('Application shutting down')\n    await this.logger.flush()\n  }\n}\n\n// Bootstrap\nconst app = new Application()\napp.start()\n\nprocess.on('SIGTERM', () => app.shutdown())\nprocess.on('SIGINT', () => app.shutdown())\n```\n\n## API Overview\n\n### LogManager\n\n| Method                   | Description                 |\n| ------------------------ | --------------------------- |\n| `channel(name, driver?)` | Get or set a logger channel |\n| `extend(name, driver)`   | Add a new logging channel   |\n\n### Logger\n\n| Method                          | Description                |\n| ------------------------------- | -------------------------- |\n| `debug(message, context?)`      | Log debug message          |\n| `info(message, context?)`       | Log info message           |\n| `notice(message, context?)`     | Log notice message         |\n| `warning(message, context?)`    | Log warning message        |\n| `error(message, context?)`      | Log error message          |\n| `critical(message, context?)`   | Log critical message       |\n| `alert(message, context?)`      | Log alert message          |\n| `emergency(message, context?)`  | Log emergency message      |\n| `log(level, message, context?)` | Log at specific level      |\n| `withContext(context)`          | Create logger with context |\n| `flush()`                       | Flush pending logs         |\n\n### Drivers\n\n| Driver               | Description                      |\n| -------------------- | -------------------------------- |\n| `ConsoleDriver`      | Output to console/stdout         |\n| `FileDriver`         | Write to a single file           |\n| `DailyDriver`        | Rotate logs daily                |\n| `StackDriver`        | Send to multiple drivers         |\n| `NullDriver`         | Discard all logs                 |\n| `FanoutLoggerDriver` | Route logs to different channels |\n\n### Formatters\n\n| Formatter         | Description                |\n| ----------------- | -------------------------- |\n| `LineFormatter`   | Human-readable line format |\n| `JsonFormatter`   | Structured JSON format     |\n| `PrettyFormatter` | Colorized pretty format    |\n\n## Documentation\n\nFor complete documentation, visit [https://atlex.dev/guide/log](https://atlex.dev/guide/log)\n\n## License\n\n## MIT\n\nPart of [Atlex](https://atlex.dev) — A modern framework for Node.js.\n","readmeFilename":"README.md"}