{"_id":"@elementor/angie-logger","_rev":"9-ee22833186134423ceaf1e92b685b6a7","name":"@elementor/angie-logger","dist-tags":{"latest":"0.3.1"},"versions":{"1.0.1":{"name":"@elementor/angie-logger","version":"1.0.1","keywords":["logger","angie","elementor","ai","utility"],"author":{"name":"Elementor"},"license":"MIT","_id":"@elementor/angie-logger@1.0.1","maintainers":[{"name":"kingyes","email":"yakir@elementor.com"},{"name":"mati1000","email":"mati@elementor.com"},{"name":"nevoss","email":"nevog@elementor.com"},{"name":"rotemee","email":"rotem@elementor.com"},{"name":"chene","email":"chene@elementor.com"},{"name":"cloud-devops","email":"cloud-devops@elementor.com"}],"homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"dist":{"shasum":"e027ae6be36aa27d3d117f7ef5644699bc063fae","tarball":"https://registry.npmjs.org/@elementor/angie-logger/-/angie-logger-1.0.1.tgz","fileCount":5,"integrity":"sha512-ECpCIa0mjKYWfLTijfH5vtlI/Jk4f0LUvpPb2HJuD3B7HmvgXRgSfz+p9MabPMHCNsYQcfqsBYY+Y8K9cHJQ8w==","signatures":[{"sig":"MEUCIQCWjx7XtHwSpxxuJr+/UwZHkni5ZaKK3pAQwGv6eyqFIQIgJI+jH++snORvSn22BP+Qaz0NpaDtcL2T4aNejIDfPTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15741},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"de456b6e5ac3d4c7921efc8a9b802d6321343aa8","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsup","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cloud-devops","email":"cloud-devops@elementor.com"},"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"_npmVersion":"10.9.3","description":"Shared logger utility for Angie AI assistant","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.0","eslint":"^9.37.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.7.2","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.46.1","@typescript-eslint/eslint-plugin":"^8.46.1"},"_npmOperationalInternal":{"tmp":"tmp/angie-logger_1.0.1_1760940545807_0.8692694492095383","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@elementor/angie-logger","version":"0.1.1","keywords":["logger","angie","elementor","ai","utility"],"author":{"name":"Elementor"},"license":"MIT","_id":"@elementor/angie-logger@0.1.1","maintainers":[{"name":"kingyes","email":"yakir@elementor.com"},{"name":"mati1000","email":"mati@elementor.com"},{"name":"nevoss","email":"nevog@elementor.com"},{"name":"rotemee","email":"rotem@elementor.com"},{"name":"chene","email":"chene@elementor.com"},{"name":"cloud-devops","email":"cloud-devops@elementor.com"}],"homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"dist":{"shasum":"f1a5972ba716dc69fcfd354b013778087a19c296","tarball":"https://registry.npmjs.org/@elementor/angie-logger/-/angie-logger-0.1.1.tgz","fileCount":5,"integrity":"sha512-Dgie20VxgqkNH4q4dt/U8Xqm06FLuEMK1GRvj7iy+PnmhBdgzPFQRCkU1dx0Q2sHH6K2BC2BGL8Tzx/o2jLVqA==","signatures":[{"sig":"MEUCIEIiUIbMZw1P8ib1SyNBvdzm6quEk8mQLKsBF2L16X/+AiEAv3NVZzzexi8QWTWk//ei5pkRkOE2h9HUylDTcozGYRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15745},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"9c3850fb586d6693d0f9132b995fcae6d81ed788","scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsup","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cloud-devops","email":"cloud-devops@elementor.com"},"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"_npmVersion":"10.9.3","description":"Shared logger utility for Angie AI assistant","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.0","eslint":"^9.37.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.7.2","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.46.1","@typescript-eslint/eslint-plugin":"^8.46.1"},"_npmOperationalInternal":{"tmp":"tmp/angie-logger_0.1.1_1760962067712_0.16834971667560605","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@elementor/angie-logger","version":"0.1.2","keywords":["logger","angie","elementor","ai","utility"],"author":{"name":"Elementor"},"license":"MIT","_id":"@elementor/angie-logger@0.1.2","maintainers":[{"name":"kingyes","email":"yakir@elementor.com"},{"name":"mati1000","email":"mati@elementor.com"},{"name":"nevoss","email":"nevog@elementor.com"},{"name":"rotemee","email":"rotem@elementor.com"},{"name":"chene","email":"chene@elementor.com"},{"name":"cloud-devops","email":"cloud-devops@elementor.com"}],"homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"dist":{"shasum":"219fdb22ba734f5f4e2d1f73a8c4c5bb07614983","tarball":"https://registry.npmjs.org/@elementor/angie-logger/-/angie-logger-0.1.2.tgz","fileCount":5,"integrity":"sha512-TyDnG1nt7dl0KTTt+DVxBz+lwQyznNYHraCwCDtZu5R+ggq33IxBDtfdnG8c+GdkRAb/9fOduDVuVbbMyfwNhA==","signatures":[{"sig":"MEQCIEYlLZvMs1CXggCxZGSlcDC6RJktZ4WhU/85Acy5igFbAiBcrRlc1oRW9g3BIbCInoVoCdWnx7QZzBnv2fbsTMgpbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14231},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"751ca86924a5ff03ccaf0c7a1bec7e9d1d660e09","scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsdown","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cloud-devops","email":"cloud-devops@elementor.com"},"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"_npmVersion":"10.9.3","description":"Shared logger utility for Angie AI assistant","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.37.0","tsdown":"^0.15.8","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.7.2","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.46.1","@typescript-eslint/eslint-plugin":"^8.46.1"},"_npmOperationalInternal":{"tmp":"tmp/angie-logger_0.1.2_1761044016204_0.9780942529534253","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@elementor/angie-logger","version":"0.2.0","keywords":["logger","angie","elementor","ai","utility"],"author":{"name":"Elementor"},"license":"MIT","_id":"@elementor/angie-logger@0.2.0","maintainers":[{"name":"kingyes","email":"yakir@elementor.com"},{"name":"mati1000","email":"mati@elementor.com"},{"name":"nevoss","email":"nevog@elementor.com"},{"name":"rotemee","email":"rotem@elementor.com"},{"name":"chene","email":"chene@elementor.com"},{"name":"cloud-devops","email":"cloud-devops@elementor.com"}],"homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"dist":{"shasum":"ccbf51d20b212f867c7bcce0faa3f4bacf9ae116","tarball":"https://registry.npmjs.org/@elementor/angie-logger/-/angie-logger-0.2.0.tgz","fileCount":5,"integrity":"sha512-ktgeGh/iPxUWXdAHwasMRWZKQIelJDzbNSU7u+04FJQUrxnOLxkC+CoCDCx4ysx/Z7+RiM4TyNAXwrq1R08tAw==","signatures":[{"sig":"MEUCIQDv7gv5HWuPudhBxd+BVdJMMiKUMv1LJP2gxwcODuFwPQIge18dQYnlB2Ko+sO1TBcSBGzNfyfar5zhOAw3QnXu6Vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14231},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"d17f6fc2a5467664462f2ebaeb63d63384f01516","scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsdown","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cloud-devops","email":"cloud-devops@elementor.com"},"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"_npmVersion":"10.9.3","description":"Shared logger utility for Angie AI assistant","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.37.0","tsdown":"^0.15.8","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.7.2","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.46.1","@typescript-eslint/eslint-plugin":"^8.46.1"},"_npmOperationalInternal":{"tmp":"tmp/angie-logger_0.2.0_1761050479138_0.37603180089966526","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@elementor/angie-logger","version":"0.2.1","keywords":["logger","angie","elementor","ai","utility"],"author":{"name":"Elementor"},"license":"MIT","_id":"@elementor/angie-logger@0.2.1","maintainers":[{"name":"kingyes","email":"yakir@elementor.com"},{"name":"mati1000","email":"mati@elementor.com"},{"name":"nevoss","email":"nevog@elementor.com"},{"name":"rotemee","email":"rotem@elementor.com"},{"name":"chene","email":"chene@elementor.com"},{"name":"cloud-devops","email":"cloud-devops@elementor.com"}],"homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"dist":{"shasum":"1495ac3743a557f0c8aa82e1a474e1d4752c3dbe","tarball":"https://registry.npmjs.org/@elementor/angie-logger/-/angie-logger-0.2.1.tgz","fileCount":8,"integrity":"sha512-UMh6en2A5VxCtF/963WOITK7fNrExbBHup/RG/1Yv/GFuUxKPqwjr5kYI1cTIam9+KMbMVLfds/8neOcPCQ+eA==","signatures":[{"sig":"MEUCIC8AtKXWRmD4G8ZDDDA6vHcA3mA44OOQr2V7+hm2M83kAiEAjOMoX9gCeFFwH1ORz0pvi6wExx66xJtHi2Pwju/EOwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21596},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"eda3ff697e0c9f6526ad45830341b711acaac615","scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsdown","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cloud-devops","email":"cloud-devops@elementor.com"},"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"_npmVersion":"10.9.3","description":"Shared logger utility for Angie AI assistant","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.37.0","tsdown":"^0.15.8","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.7.2","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.46.1","@typescript-eslint/eslint-plugin":"^8.46.1"},"_npmOperationalInternal":{"tmp":"tmp/angie-logger_0.2.1_1761053730184_0.26931750810042265","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@elementor/angie-logger","version":"0.3.0","keywords":["logger","angie","elementor","ai","utility"],"author":{"name":"Elementor"},"license":"MIT","_id":"@elementor/angie-logger@0.3.0","maintainers":[{"name":"kingyes","email":"yakir@elementor.com"},{"name":"mati1000","email":"mati@elementor.com"},{"name":"nevoss","email":"nevog@elementor.com"},{"name":"rotemee","email":"rotem@elementor.com"},{"name":"chene","email":"chene@elementor.com"},{"name":"cloud-devops","email":"cloud-devops@elementor.com"}],"homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"dist":{"shasum":"54bb5a9a090ed77cb87278209695fd9eeab37459","tarball":"https://registry.npmjs.org/@elementor/angie-logger/-/angie-logger-0.3.0.tgz","fileCount":8,"integrity":"sha512-5K8V+9RUVwJeaAsUwvNDX+krkFZjr+jRpZcZrZTTPHpl6VXE9VM7q/qsLdq7Bzju2g6RgkdEFhyXVNLD3kjYYg==","signatures":[{"sig":"MEQCIBszIbmMttNqR8HNhv5DNvoEMhWc/gKi1OwamXFATUiSAiA9jeLsgal6kKrFVHB5euK5mX8tb4ZwYoni7stluKwmFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24298},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5ef28f59b5a5f7b80f08518e23b3fdf28f60bf6b","scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsdown","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cloud-devops","email":"cloud-devops@elementor.com"},"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"_npmVersion":"10.9.3","description":"Shared logger utility for Angie AI assistant","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.37.0","tsdown":"^0.15.8","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.7.2","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.46.1","@typescript-eslint/eslint-plugin":"^8.46.1"},"_npmOperationalInternal":{"tmp":"tmp/angie-logger_0.3.0_1761207972876_0.8223621353989885","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@elementor/angie-logger","version":"0.3.1","keywords":["logger","angie","elementor","ai","utility"],"author":{"name":"Elementor"},"license":"MIT","_id":"@elementor/angie-logger@0.3.1","maintainers":[{"name":"kingyes","email":"yakir@elementor.com"},{"name":"mati1000","email":"mati@elementor.com"},{"name":"nevoss","email":"nevog@elementor.com"},{"name":"rotemee","email":"rotem@elementor.com"},{"name":"chene","email":"chene@elementor.com"},{"name":"cloud-devops","email":"cloud-devops@elementor.com"}],"homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"dist":{"shasum":"01b37f7eec1c7f255e28193d2d0c8f244ce0666e","tarball":"https://registry.npmjs.org/@elementor/angie-logger/-/angie-logger-0.3.1.tgz","fileCount":8,"integrity":"sha512-OgKv10opeBazSN9MSRtDUc32dO5+oDve+x4+ruFYxUisose3++lNlIZ7MOoqfvRewKXGrrhLERgoArVzX629rA==","signatures":[{"sig":"MEQCIBXJQHvZyxeVXGDSEv4vea1Z8CSyqL/rxZDY9QlmGc75AiB8Tcl74QTJhG5gtecb/KS+RfIPhGoDReu9B0DuCJx1BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24371},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b5000291e39bc5a2e24db693bff7e33cc2a1d2cd","scripts":{"dev":"tsdown --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsdown","lint:fix":"eslint src/**/*.ts --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cloud-devops","email":"cloud-devops@elementor.com"},"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"_npmVersion":"10.9.3","description":"Shared logger utility for Angie AI assistant","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^9.37.0","tsdown":"^0.15.8","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.7.2","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.46.1","@typescript-eslint/eslint-plugin":"^8.46.1"},"_npmOperationalInternal":{"tmp":"tmp/angie-logger_0.3.1_1761225235349_0.7879237928453378","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-10-20T06:09:05.680Z","modified":"2026-09-15T13:12:39.839Z","1.0.1":"2025-10-20T06:09:06.011Z","0.1.1":"2025-10-20T12:07:47.926Z","0.1.2":"2025-10-21T10:53:36.389Z","0.2.0":"2025-10-21T12:41:19.298Z","0.2.1":"2025-10-21T13:35:30.395Z","0.3.0":"2025-10-23T08:26:13.078Z","0.3.1":"2025-10-23T13:13:55.536Z"},"bugs":{"url":"https://github.com/elementor/elementor-ai/issues"},"author":{"name":"Elementor"},"license":"MIT","homepage":"https://github.com/elementor/elementor-ai/tree/master/packages/angie-logger","keywords":["logger","angie","elementor","ai","utility"],"repository":{"url":"git+https://github.com/elementor/elementor-ai.git","type":"git","directory":"packages/angie-logger"},"description":"Shared logger utility for Angie AI assistant","maintainers":[{"email":"yakir@elementor.com","name":"kingyes"},{"email":"mati@elementor.com","name":"mati1000"},{"email":"chene@elementor.com","name":"chene"},{"email":"cloud-devops@elementor.com","name":"cloud-devops"}],"readme":"# @elementor/angie-logger\n\n**A shared logger utility for Angie AI Assistant.**\n\nThis package provides a flexible, context-aware logger with granular log level control.\n\n---\n\n## Features\n\n- **Granular log levels**: Control logging with 5 levels: `debug`, `info`, `warn`, `error`, `none`\n- **Context-aware**: Supports string and object-based contexts that can be nested\n- **Dynamic control**: Change log levels at runtime with `setLogLevel()`\n- **Type-safe**: Written in TypeScript with full type definitions\n- **Zero dependencies**: No runtime dependencies, lightweight bundle\n- **Environment agnostic**: No built-in environment detection - you decide the log level\n\n---\n\n## Installation\n\n```bash\nnpm install @elementor/angie-logger\n```\n\n---\n\n## Quick Start\n\n### Basic Usage\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\nconst logger = createLogger('MyApp');\n\nlogger.debug('Detailed debug information');\nlogger.log('General log message');\nlogger.info('Informational message');\nlogger.warn('Warning message');\nlogger.error('Error message');\n```\n\n### Setting Log Levels\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\nconst logger = createLogger('MyApp');\n\n// Set to only show warnings and errors\nlogger.setLogLevel('warn');\n\nlogger.debug('Not logged');\nlogger.info('Not logged');\nlogger.warn('This WILL be logged');\nlogger.error('This WILL be logged');\n```\n\n### With Context Objects\n\n```typescript\nconst logger = createLogger({ app: 'MyApp', version: '1.0.0' });\n\nlogger.info('Application initialized');\n// Output: [{\"app\":\"MyApp\",\"version\":\"1.0.0\"}] Application initialized\n```\n\n### Extending Loggers\n\n```typescript\nconst baseLogger = createLogger('MyApp');\nconst moduleLogger = baseLogger.extend('UserModule');\nconst componentLogger = moduleLogger.extend('LoginForm');\n\ncomponentLogger.log('Form rendered');\n// Output: [MyApp > UserModule > LoginForm] Form rendered\n```\n\n### Mixed Context Types\n\n```typescript\nconst appLogger = createLogger('MyApp');\nconst featureLogger = appLogger.extend({ feature: 'Authentication', userId: 123 });\n\nfeatureLogger.info('User authenticated');\n// Output: [MyApp > {\"feature\":\"Authentication\",\"userId\":123}] User authenticated\n```\n\n### Environment-Based Log Levels\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\nconst logger = createLogger('MyApp');\n\n// Set log level based on environment\nif (process.env.NODE_ENV === 'production') {\n  logger.setLogLevel('warn'); // Only warnings and errors in production\n} else if (process.env.NODE_ENV === 'test') {\n  logger.setLogLevel('none'); // Silent during tests\n}\n// Development: default 'debug' level shows everything\n```\n\n### URL Parameter Debug Mode\n\n```typescript\nconst logger = createLogger('MyApp', { logLevel: 'warn' });\n\nconst params = new URLSearchParams(window.location.search);\nif (params.has('debug')) {\n  logger.setLogLevel('debug');\n}\n```\n\n### Configuration Options\n\nYou can customize logger behavior by passing a configuration object:\n\n```typescript\nimport { createLogger, LoggerConfig, LogLevel } from '@elementor/angie-logger';\n\nconst config: LoggerConfig = {\n  logLevel: 'info',        // Set initial log level\n  color: '#ff6b6b',        // Custom color for context labels\n};\n\nconst logger = createLogger('MyApp', config);\n```\n\n#### Available Configuration Options\n\n- **`logLevel`** (`LogLevel`, default: `'debug'`): Initial log level\n  ```typescript\n  const logger = createLogger('MyApp', { logLevel: 'warn' });\n  logger.info('This will NOT be logged');\n  logger.warn('This WILL be logged');\n  ```\n\n- **`color`** (string, default: `'#00bcd4'`): Color for the context label in browser console\n  ```typescript\n  const logger = createLogger('MyApp', { color: '#ff6b6b' });\n  ```\n\n**Note:** Configuration is preserved when extending loggers:\n```typescript\nconst baseLogger = createLogger('App', { logLevel: 'warn', color: '#00ff00' });\nconst childLogger = baseLogger.extend('Module'); // Keeps the log level and color\n```\n\n---\n\n## Behavior\n\n### Log Levels\n\nThe logger supports 5 log levels with decreasing verbosity:\n\n1. **`debug`** (default): All messages are logged (debug, log, info, warn, error)\n2. **`info`**: Informational messages and above (log, info, warn, error)\n3. **`warn`**: Warnings and errors only (warn, error)\n4. **`error`**: Errors only (error)\n5. **`none`**: Nothing is logged (complete silence)\n\n### Log Level Priority\n\nEach level includes all messages from higher priority levels:\n\n```typescript\nconst logger = createLogger('MyApp');\n\n// debug level (default) - logs everything\nlogger.setLogLevel('debug');\nlogger.debug('✓ Logged');\nlogger.log('✓ Logged');\nlogger.info('✓ Logged');\nlogger.warn('✓ Logged');\nlogger.error('✓ Logged');\n\n// info level - logs info, log, warn, error\nlogger.setLogLevel('info');\nlogger.debug('✗ Not logged');\nlogger.log('✓ Logged');\nlogger.info('✓ Logged');\nlogger.warn('✓ Logged');\nlogger.error('✓ Logged');\n\n// warn level - logs warn, error\nlogger.setLogLevel('warn');\nlogger.debug('✗ Not logged');\nlogger.log('✗ Not logged');\nlogger.info('✗ Not logged');\nlogger.warn('✓ Logged');\nlogger.error('✓ Logged');\n\n// error level - logs error only\nlogger.setLogLevel('error');\nlogger.debug('✗ Not logged');\nlogger.log('✗ Not logged');\nlogger.info('✗ Not logged');\nlogger.warn('✗ Not logged');\nlogger.error('✓ Logged');\n\n// none level - logs nothing\nlogger.setLogLevel('none');\nlogger.error('✗ Not logged');\n```\n\n### Method to Level Mapping\n\n- `debug()` → debug level\n- `log()` → info level\n- `info()` → info level\n- `warn()` → warn level\n- `error()` → error level\n\n---\n\n## API Reference\n\n### `createLogger(context, config?)`\n\nCreates a new logger instance.\n\n**Parameters:**\n- `context`: `string | Record<string, unknown>` - Initial context for the logger\n- `config?`: `LoggerConfig` (optional) - Configuration options\n  - `logLevel?`: `LogLevel` - Initial log level (default: `'debug'`)\n  - `color?`: `string` - Color for context labels (default: `'#00bcd4'`)\n\n**Returns:** `Logger` instance\n\n### Logger Methods\n\n- `log(...args)`: General purpose logging (info level)\n- `info(...args)`: Informational messages (info level)\n- `warn(...args)`: Warning messages (warn level)\n- `error(...args)`: Error messages (error level)\n- `debug(...args)`: Debug messages (debug level)\n- `extend(subContext)`: Create a child logger with additional context\n- `setLogLevel(level)`: Dynamically change the log level\n\n### LogLevel Type\n\n```typescript\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';\n```\n\n---\n\n## Examples\n\n### React Component\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\nconst logger = createLogger('ImageGallery');\n\nif (process.env.NODE_ENV === 'production') {\n  logger.setLogLevel('error');\n}\n\nfunction ImageGallery() {\n  logger.debug('Component mounting');\n  \n  const handleImageLoad = (imageId: string) => {\n    logger.info('Image loaded', { imageId });\n  };\n  \n  const handleError = (error: Error) => {\n    logger.error('Failed to load image', error);\n  };\n  \n  return (\n    // component JSX\n  );\n}\n```\n\n### Service Layer\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\nconst logger = createLogger({ service: 'ApiClient' });\n\nclass ApiClient {\n  private logger = logger.extend({ method: 'fetch' });\n  \n  async fetch(endpoint: string) {\n    this.logger.debug('Fetching data', { endpoint });\n    \n    try {\n      const response = await fetch(endpoint);\n      this.logger.info('Data fetched successfully', { endpoint });\n      return response.json();\n    } catch (error) {\n      this.logger.error('Failed to fetch data', { endpoint, error });\n      throw error;\n    }\n  }\n}\n```\n\n### Dynamic Logging Control\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\nconst logger = createLogger('App');\n\n// Expose methods globally for debugging\nif (typeof window !== 'undefined') {\n  window.setLogLevel = (level) => logger.setLogLevel(level);\n}\n\n// Then in browser console:\n// window.setLogLevel('debug')  // Show all logs\n// window.setLogLevel('warn')   // Only warnings and errors\n// window.setLogLevel('none')   // Silence all logs\n```\n\n### Testing\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\ndescribe('MyComponent', () => {\n  beforeAll(() => {\n    // Silence logs during tests\n    const logger = createLogger('MyComponent');\n    logger.setLogLevel('none');\n  });\n  \n  // your tests\n});\n```\n\n### Different Log Levels per Module\n\n```typescript\nimport { createLogger } from '@elementor/angie-logger';\n\nconst apiLogger = createLogger('API', { logLevel: 'warn' });\nconst uiLogger = createLogger('UI', { logLevel: 'debug' });\n\napiLogger.info('Not logged - API is warn level');\napiLogger.error('Logged - error is >= warn');\n\nuiLogger.info('Logged - UI is debug level');\nuiLogger.debug('Logged - UI is debug level');\n```\n","readmeFilename":"README.md"}