{"_id":"@1001tv/logger","_rev":"6-2dcdb3f5cfec36c1029de5d6c7ebc7fd","name":"@1001tv/logger","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.1-1725328789.0":{"name":"@1001tv/logger","version":"1.0.1-1725328789.0","keywords":["logger","winston","typescript","correlation-id"],"author":{"name":"1001.tv"},"license":"ISC","_id":"@1001tv/logger@1.0.1-1725328789.0","maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"dist":{"shasum":"7b518e73e65952e553230ed36c98e041f5d6ff4e","tarball":"https://registry.npmjs.org/@1001tv/logger/-/logger-1.0.1-1725328789.0.tgz","fileCount":2,"integrity":"sha512-YzeZiDDnso+CnpOXAHPuybezvgL+sI9N0shypnSVmBVHc8xzfCpMAJW7GYsuQwGK2LZ15nB9Bab2yLPfLiL5FQ==","signatures":[{"sig":"MEYCIQCtlV6v8e4AlM72+cDxnVqMp+EMzOakoakC38+GM+f1mQIhAO1p+xzEP1I92MJ317tgaFYwAIJyodvDZ5TiWCyjEtB/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3522},"main":"dist/logger.js","types":"dist/logger.d.ts","gitHead":"f6ec623a0d67f484323640e82017be05d0800b27","scripts":{"build":"tsc"},"_npmUser":{"name":"bilalalghazi","email":"bilal@1001.tv"},"_npmVersion":"6.4.1","description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"winston":"^3.14.2","cls-hooked":"^4.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^22.5.1","@types/cls-hooked":"^4.3.8"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.0.1-1725328789.0_1725328797621_0.11826613369066763","host":"s3://npm-registry-packages"}},"1.0.1-alpha.0":{"name":"@1001tv/logger","version":"1.0.1-alpha.0","keywords":["logger","winston","typescript","correlation-id"],"author":{"name":"1001.tv"},"license":"ISC","_id":"@1001tv/logger@1.0.1-alpha.0","maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"dist":{"shasum":"090688a22087adaa20096fa38cafcd08dd028658","tarball":"https://registry.npmjs.org/@1001tv/logger/-/logger-1.0.1-alpha.0.tgz","fileCount":2,"integrity":"sha512-dTKaQvwskApYarE9AEBhMkx8n2stGEu33V1gZ8yOU1bddaB8sjvz6b7ixkcPYkCO3e4P25YdNOV8aCZka1c/Ag==","signatures":[{"sig":"MEUCIQDOAfuFlYjF1ahB/RlA/S0YdCsttZK49T6/24KD5jpRaQIgbhlRGDcacCTvykx1W1uOxMWNZoFch3xjUUrd872elVg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3517},"main":"dist/logger.js","types":"dist/logger.d.ts","gitHead":"409303b2b444a3625073a34ac47638bf36259720","scripts":{"build":"tsc"},"_npmUser":{"name":"bilalalghazi","email":"bilal@1001.tv"},"_npmVersion":"6.4.1","description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"winston":"^3.14.2","cls-hooked":"^4.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^22.5.1","@types/cls-hooked":"^4.3.8"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.0.1-alpha.0_1725332180758_0.201568774375664","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@1001tv/logger","version":"1.1.0","keywords":["logger","winston","typescript","correlation-id"],"author":{"name":"1001.tv"},"license":"ISC","_id":"@1001tv/logger@1.1.0","maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"dist":{"shasum":"cfd907b7c8058712b20f119cbc29e1d3efb3f364","tarball":"https://registry.npmjs.org/@1001tv/logger/-/logger-1.1.0.tgz","fileCount":2,"integrity":"sha512-/IDGjtsCR0yfBKeeoGGH90VP/l97TDIqt8JilrVGc7ij/IJMjAhkyahU5rGiNM1JgViXAUV86CnHm5Ip50Wj2A==","signatures":[{"sig":"MEYCIQDrnUdeUiAAZo9RPpOKPRX5v9BBmEC3BUGrZ2d/T0OkXQIhAPh+eTPvllrOoi5mANmHngFjNDMCUHdRiGR7Tb9ugxV1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3509},"main":"dist/logger.js","types":"dist/logger.d.ts","gitHead":"a51c6809e324580c9ee980127b3c467194bb06b1","scripts":{"build":"tsc"},"_npmUser":{"name":"bilalalghazi","email":"bilal@1001.tv"},"_npmVersion":"6.4.1","description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"winston":"^3.14.2","cls-hooked":"^4.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^22.5.1","@types/cls-hooked":"^4.3.8"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.1.0_1725358339078_0.5049297293925088","host":"s3://npm-registry-packages"}},"1.0.1-1725367789.0":{"name":"@1001tv/logger","version":"1.0.1-1725367789.0","keywords":["logger","winston","typescript","correlation-id"],"author":{"name":"1001.tv"},"license":"ISC","_id":"@1001tv/logger@1.0.1-1725367789.0","maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"dist":{"shasum":"4bf93ef7481138b1559f275833310ecb23b705af","tarball":"https://registry.npmjs.org/@1001tv/logger/-/logger-1.0.1-1725367789.0.tgz","fileCount":5,"integrity":"sha512-trHDTkvjdzzChVu5fj89LiRZXuDgaROFJTOtUWA6ZSOPV3tI0ggEe+NeFUtNnqsINomb+CbLyckpkKfjYZahLA==","signatures":[{"sig":"MEUCID8H0G1rF7YE2CByQaUpprfdntxEK3BMTpHuk8w1vYeXAiEAysVMj1Ghny7XewuCVP1W/5P+6XGhimNhxrmJSwlFvXg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5639},"main":"dist/logger.js","types":"dist/logger.d.ts","gitHead":"3951c768d5ad5026e0c10d9cfea560212dccda22","scripts":{"build":"tsc"},"_npmUser":{"name":"bilalalghazi","email":"bilal@1001.tv"},"_npmVersion":"6.4.1","description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"winston":"^3.14.2","cls-hooked":"^4.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^22.5.1","@types/cls-hooked":"^4.3.8"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.0.1-1725367789.0_1725367798137_0.5388916651511353","host":"s3://npm-registry-packages"}},"1.0.1-1725368307.0":{"name":"@1001tv/logger","version":"1.0.1-1725368307.0","keywords":["logger","winston","typescript","correlation-id"],"author":{"name":"1001.tv"},"license":"ISC","_id":"@1001tv/logger@1.0.1-1725368307.0","maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"dist":{"shasum":"2e445e1d1656b4ae4a14bec6b32ac679de9d2ec7","tarball":"https://registry.npmjs.org/@1001tv/logger/-/logger-1.0.1-1725368307.0.tgz","fileCount":5,"integrity":"sha512-Q03FpEu7w/fruoB87+xh0JU/aBfNvzrhaEWnPGKqZSSCyPoXTIZtsUSD41uION8hn3C/ARsXp2wQYoSmypMYwQ==","signatures":[{"sig":"MEUCIQCBgkfb1BlAhcWEXJ1joVoKyaXdyClO6TuaPdgEEOPsywIgdbOwAm9CldHSmou0Op96WLzyKI9iXD6bTvZFtokDJ0k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5639},"main":"dist/logger.js","types":"dist/logger.d.ts","gitHead":"f244f00673e423a423e6de2533306028ced7b61f","scripts":{"build":"tsc"},"_npmUser":{"name":"bilalalghazi","email":"bilal@1001.tv"},"_npmVersion":"6.4.1","description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"winston":"^3.14.2","cls-hooked":"^4.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^22.5.1","@types/cls-hooked":"^4.3.8"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.0.1-1725368307.0_1725368315448_0.16480003182855163","host":"s3://npm-registry-packages"}},"1.0.1-1725369239.0":{"name":"@1001tv/logger","version":"1.0.1-1725369239.0","keywords":["logger","winston","typescript","correlation-id"],"author":{"name":"1001.tv"},"license":"ISC","_id":"@1001tv/logger@1.0.1-1725369239.0","maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"dist":{"shasum":"0abcf7875af42639684798af60f22e9442be116c","tarball":"https://registry.npmjs.org/@1001tv/logger/-/logger-1.0.1-1725369239.0.tgz","fileCount":6,"integrity":"sha512-Y1cD6SJoSjAtP72oi0Gba7ryrHKEvJzIHBkgVlf9ee68oU4atOJkv9H1Aw4fML+9FpiMqjO8MOIh+WtooF84rQ==","signatures":[{"sig":"MEQCIHeC0CXAc2xGy9cYhwOChqr0uPxbIJpZpYmWSVviV5HTAiAuieCA4z17HVvJawrEsh9I2jqSldxrGc0A47jnsCblwA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5771},"main":"dist/logger.js","types":"dist/logger.d.ts","gitHead":"d21de5d2c11eee021c27e7330f222f6333f29fd7","scripts":{"build":"tsc && cp src/types.d.ts dist/types.d.ts"},"_npmUser":{"name":"bilalalghazi","email":"bilal@1001.tv"},"_npmVersion":"6.4.1","description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","directories":{},"_nodeVersion":"10.15.0","dependencies":{"winston":"^3.14.2","cls-hooked":"^4.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.4","@types/node":"^22.5.1","@types/cls-hooked":"^4.3.8"},"_npmOperationalInternal":{"tmp":"tmp/logger_1.0.1-1725369239.0_1725369247850_0.42734571404674915","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@1001tv/logger","version":"1.2.0","description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","main":"dist/logger.js","types":"dist/logger.d.ts","scripts":{"build":"tsc && cp src/types.d.ts dist/types.d.ts"},"keywords":["logger","winston","typescript","correlation-id"],"author":{"name":"1001.tv"},"license":"ISC","dependencies":{"cls-hooked":"^4.2.2","winston":"^3.14.2"},"devDependencies":{"@types/cls-hooked":"^4.3.8","@types/node":"^22.5.1","typescript":"^5.5.4"},"publishConfig":{"access":"public"},"gitHead":"91624ad67e4a3cc7ca32409a13a51eb18c19320e","_id":"@1001tv/logger@1.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"bilalalghazi","email":"bilal@1001.tv"},"dist":{"integrity":"sha512-Jz/FDqQMA6zcJtPNui4ttWQHgwkU7IpQKJ0+hEuXNb4nhbov+n5y2J/+qbwF+sPjmElbnPq0y4TvKwwqIpMHeQ==","shasum":"9a9495c1858e254bb8292e2723b6d029e126ed0e","tarball":"https://registry.npmjs.org/@1001tv/logger/-/logger-1.2.0.tgz","fileCount":6,"unpackedSize":5758,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCONUvsvZ/rX4h7SOIyuJwKfrWJ2ThuZdH4+aGSXK72FQIgGQhkKl9TItT7yclRa5aVAjEZnpcFMHVficu8oYjDK2A="}]},"directories":{},"maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/logger_1.2.0_1725375241795_0.2700896696247259"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-03T01:59:57.535Z","modified":"2024-09-03T14:54:02.372Z","1.0.1-1725328789.0":"2024-09-03T01:59:57.761Z","1.0.1-alpha.0":"2024-09-03T02:56:20.961Z","1.1.0":"2024-09-03T10:12:19.222Z","1.0.1-1725367789.0":"2024-09-03T12:49:58.310Z","1.0.1-1725368307.0":"2024-09-03T12:58:35.690Z","1.0.1-1725369239.0":"2024-09-03T13:14:07.984Z","1.2.0":"2024-09-03T14:54:02.030Z"},"author":{"name":"1001.tv"},"license":"ISC","keywords":["logger","winston","typescript","correlation-id"],"description":"A customizable logger using Winston and CLS-Hooked for correlation IDs.","maintainers":[{"name":"bilalalghazi","email":"bilal@1001.tv"}],"readme":"# 1001tv-logger\n\n**1001tv-logger** is a customizable logging library built on top of Winston with support for CLS-Hooked for correlation IDs. This library is designed for use across multiple TypeScript projects, providing structured logging with mandatory and optional metadata fields for 1001tv services.\n\n## Features\n\n- **Structured Logging**: Logs are formatted in JSON, making them easy to parse and analyze using log aggregation tools like AWS CloudWatch.\n\n- **Correlation IDs**: Automatically injects correlation IDs into logs from CLS-Hooked, ensuring that all logs from a single request are grouped together and making it easy to trace requests across distributed.\n\n- **Customizable Log Levels**: Supports custom log levels (error, warn, info).\n\n## Metadata\n1001-Logger requires certain fields if additional metadata is included in the log message. :\n\n**layer** (mandatory): Indicates the layer where the log is generated (e.g., 'main', 'service', 'controller', 'repository', 'middleware', 'other').\n**function** (mandatory): The name of the function where the log is printed.\nAny additional fields can be included as optional metadata (e.g., userId, errorCode).\n\n## Usage\n\n1- Basic Setup\nImport the logger into your project:\n\n```ts\nimport { logInfo, logError } from '1001-logger';\n```\n2- Logging Examples\n\n**Info Logging**\n```ts\nlogInfo('This is an informational message');\n\n// Or\nlogInfo('This is an informational message', {\n  layer: 'service', // Mandatory metadata\n  function: 'fetchData', // Mandatory metadata\n  userId: '1234' // Optional metadata\n});\n```\n**Warn Logging**\n\n```ts\nlogWarn('This is a warning message');\n\n// Or\nlogWarn('This is a warning message', {\n  layer: 'controller', // Mandatory\n    function: 'handleRequest', // Mandatory metadata\n    userId: '5678' // Optional metadata\n});\n```\n\n**Error Logging**\n\n```ts\nlogError('This is an error message');\n\n// Or\nlogError('This is an error message', {\n  layer: 'controller', // Mandatory metadata\n  function: 'handleRequest', // Mandatory metadata\n  errorCode: 'ERR123', // Optional metadata\n  userId: '5678' // Optional metadata\n});\n```\n\n## Correlation IDs\nThe logger automatically injects a correlationId into every log message if it is available in the CLS-Hooked namespace (auth-middleware-namespace). This is useful for tracking a single request across various services and layers.\n\nExample:\n\n```ts\n// Ensure a correlation ID is set up earlier in the middleware or service\nimport { Request, Response, NextFunction } from 'express';\nimport { createNamespace } from 'cls-hooked';\n\nconst session = createNamespace('auth-middleware-namespace');\n\nexport function storeCorrelationIdMiddleware(req: Request, res: Response, next: NextFunction) {\n    session.run(() => {\n        session.set('correlationId', req.headers['x-correlation-id']);\n        next();\n    });\n}\n```","readmeFilename":"README.md"}