{"_id":"@bridgera-iot/bridgera-structured-logger","_rev":"37-fc0ca2ce55424f79b511757ade9a7169","name":"@bridgera-iot/bridgera-structured-logger","dist-tags":{"latest":"1.0.35"},"versions":{"1.0.16":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.16","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.16","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"fbd58360bb86cc7c18ffd465e10236ea972a7c22","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.16.tgz","fileCount":4,"integrity":"sha512-JE6Gy06Zz4+iy+OG/i4cCyZauW2hdG41ceCzmc0pii6cpikBOev2kp4y5m9FlEU46oKyzQhWM5sUBzAurMkDkA==","signatures":[{"sig":"MEYCIQCe4t88Us0PFrfIcEhXU7GArb6nWROQh32IqZUof0o23AIhAKnLlFaTrXANOUl/gU4feF0rC2ovHqK90k7BseujYcdE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5091},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.16_1752230874334_0.4099007678949327","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.17","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.17","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"cde951cd2e8a17d804728af89d3624215134a877","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.17.tgz","fileCount":4,"integrity":"sha512-TMmzaMGQmv5/64hLjyBYurhBZVNtlY+d7D2Wp9Krrk+sk9EN4HHTK7OrvEAZNstGtZ06+GtWQNkuG7+WUdcDgQ==","signatures":[{"sig":"MEUCICdFqE/5Dvx1T8v9HLcytFNEX32ixk/PFDxgnI64EgvNAiEA1rA8ZKn9ZMnOcfEI7PTtiXd8YjN0tvge6crU+7qxMF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5236},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.17_1752241549007_0.1261897698057468","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.18","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.18","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"f56dc1f88224a39c3ba97c6b6b5da1e01841f1e1","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.18.tgz","fileCount":4,"integrity":"sha512-DiyLWSbl0AyTTg7yoclzY9Q6R3dDle2Pjbs5imHPazP7zzY5MCycUWdk69k/ogMH4d0ATMJRUth5sU4F/GqPtQ==","signatures":[{"sig":"MEQCIF+3+udQUNf1S9BDJoeGjT2YJ725gIwzEA3RPSOjTkmaAiBS51L6zLi4jNRNfupic/COaTfEQy2IhD/bwGfV+ZyQIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5206},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.18_1752243231358_0.34107421364770873","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.19","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.19","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"c03af66583bc5106966b5f6569310e20d91e1287","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.19.tgz","fileCount":4,"integrity":"sha512-2R63NYCIZNI6bdw41VcSVcP33+Sl9tZ0V+jULWdDcFqxSDQe1K9dgrLFyyZe0HpEZGBlv3wfTXnItFmQ/Zk8Qw==","signatures":[{"sig":"MEQCIGcvr7qzZ6WcS3ujuJ9R6ONm68Wg7ysUyVmCON1auuU0AiAz/9YABt+M8CQ/yrEZJOobc0kFAydx4AdMj9/b8Ehmfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5247},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.19_1752243884428_0.03379479378088335","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.20","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.20","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"8c75c838db8122ecf34285c3e77d108302534b0f","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.20.tgz","fileCount":4,"integrity":"sha512-ru9fxuW/6ylJ5mOXM5RUI3PrCjLQ+ZsxmLzXXNmLgCEs29vtX8eMGH5n4I7tXGd1MRyZHTZeihki0qTDrN9pCg==","signatures":[{"sig":"MEUCIQCdN4MIPrcFjLFLJpw87IPe6/M6/zTVn+fiCOaR5voYigIgGuvJvh6UxBkoVm7phVpXouEOYP6aPwQMkY9v7d3fi/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5557},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.20_1752244419474_0.05467303407776991","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.21","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.21","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"6194a96c93e1624ed2bd08b4b84b4108ea5f4619","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.21.tgz","fileCount":4,"integrity":"sha512-HcdwWUCzjwT9+Mpxhi7qis00IX1fURH/unaANJ7nYiSQcx6nKMwYaT0if2OeDpoJqX7EWQ7xZkoIu2LUZOx9+Q==","signatures":[{"sig":"MEUCIQCtLP5dUeJK5H0wAOnQBa5R5QNeIrMfH52O1DAQ0NSJtAIgeEn/n9DiQcr1o73pFC+JAH+/EMuOZK6vLfhiSuVPiKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5622},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.21_1752244618162_0.16583950305710005","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.22","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.22","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"012937c1e64245db74f9852cce1af1bb1ebcc81d","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.22.tgz","fileCount":4,"integrity":"sha512-s39FxrXfNCsqQU+CO3FoUwZfSeStwz62NBAaDUtOJrbYvhmXGeS1+0orPucO/4ywhktgrUl84zKw4e0/6ykfzQ==","signatures":[{"sig":"MEYCIQDGEkZYj3+jR3YeMS/Lza7yW0/RqbYf7Z5gJbKYrIlhdAIhALf1OkzUtmn0UUp9an7nU5P78wfKDPAPKTUciDcpVQAq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5663},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.22_1752244993538_0.3325121780999707","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.23","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.23","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"6b31d4b45894218c0100ecc3439f8f6a78ec741f","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.23.tgz","fileCount":4,"integrity":"sha512-g+7cTJMsVxLvMcLQLChGb64g2+szoUxRUOPfmLU9IAUcZ7OlIUz0eknOGk5PafYEB8e3j4Z05Cz23YRfgj07Sg==","signatures":[{"sig":"MEQCIDk1JPdFriQWV6OT/SA1LMquolQDj/cgCqWUCCVntazdAiA7fVnGlg118/M+RLS/c6cruXyQO+7IjwNBFUCHlcg0+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5867},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.23_1752245285105_0.41606806988483314","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.24","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.24","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"d56cf51104ec0981028aace28c0c75950a15106c","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.24.tgz","fileCount":4,"integrity":"sha512-cWqlmd7VXth9GxqtgQ8cOqvgO+LWO8ewJ9fjSHMDSdPOUIk3YPHntx9jSA6+pOgPZhmVdpVQxOoSIPijurP+ug==","signatures":[{"sig":"MEUCIQCgTnkWmlJpeq7FBLpVEQY1xNl3Ba8Z9xwL5guscHV7XQIgdG9IVN0H544SU9H6CFXXGJheaZF9taPscief+CFo4LQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5917},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.24_1752245555458_0.43278647970071393","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.25","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.25","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"b61c99493d5729c78ab8ad2b92224857ca78c4d8","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.25.tgz","fileCount":4,"integrity":"sha512-S45oGY19qpc/JaoWFcm9RZmVdr+SZCwIKRUxnCYUQUckFH4MmV8523+1s+0WYGEhsiZlkiAii0d+p7SjwEqCKg==","signatures":[{"sig":"MEUCIBmaLjfOI+Qh/OC5a9jQLGjGisLHZiAFnDbzrcZ99+oTAiEAmD4RFDr9e2bRKdvvzYwMemGXf++kW04CYR/9Ne2YQF0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5899},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.25_1752476831608_0.8239807524049061","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.26","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.26","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"aa2a70f27f9902e9d28dda8780313aeabb83e8c1","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.26.tgz","fileCount":4,"integrity":"sha512-9KW0l0yqVX/P+QfCmRWcaL9TEOpzh6mcebprFc8agVZ3845ui0WwuvCg63+u+nPqqb4sqUhHHp7PEWyCXgSpFw==","signatures":[{"sig":"MEQCIDzfiOgAD+e4Hh7CuctWdAR2MwIeQHENzNuGgBueb8qpAiAI0EyrFl6QKEHHUhZWQHOyF7rQzq2VGu7D4LOdgzOMdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10234},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.26_1752561485544_0.63215333529134","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.27","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.27","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"faadc433fca2630f654c6bd1f8980efac91bf891","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.27.tgz","fileCount":4,"integrity":"sha512-MXvcPxCx2g3rpUKx7VHVu2Q8OGCln2K4Q6xIoYbCFvvxyjTdQdrQoKMcXELxgu+9LTclhjMKH9BEjQUXI3dQWQ==","signatures":[{"sig":"MEUCICSfpDCcLABxLP0w43m6kPWN8E77ZybPlpTCMyDh8JHSAiEAz21Ph9YjBJFWztuB3E7kJqzMsfYY0kK1Gn4lAQ4tSLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10295},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.27_1753108781378_0.37026983272833647","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.28","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.28","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"b46bc75e496d6ae0d475e08deb683dd5e78c5375","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.28.tgz","fileCount":4,"integrity":"sha512-7ifKn6N+JTmntC35Sw5UhUduRaSwcowY6L8+hAfjb09Hu+6Ud9ZEkJYGOhZDIpnRw3FvqPsfw8s741/ihkO0fw==","signatures":[{"sig":"MEUCIQDmUld1Ixb1uB8h2jirL2ZWJalL5/qOIEfqXIDzwyEY7QIgKJ9WrW+JmPp1uvnEwDBZmx8Py06B6YV2nDLwktq0YzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10316},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.28_1753109192842_0.5593865061928196","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.29","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.29","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"e01964cdd2916add4ddde0dc14d6827a8263f1b3","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.29.tgz","fileCount":4,"integrity":"sha512-2EudrKJhF2VqMetEWrslJ8H+aiBOGpgTYOBhVSYHHHLc79sAG2XiXoNtTXJDluRDSsQoqWx+0FCLKRPE4DwfHw==","signatures":[{"sig":"MEUCIFxOiIHOEaawGkEEGYe2X4AVQGHbMKTcQ0w0N4uT3iKvAiEAsIm/Ml43ayL66k/8IoVHhTIS6jNjXVhbfljyshOA9DY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10750},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"6.14.16","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"12.22.12","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.29_1753114565376_0.3147537147889947","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.30","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.30","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"62cefa157d09fb94c4f8d118eb03c5cc5d97a5c0","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.30.tgz","fileCount":4,"integrity":"sha512-WwEOTeM/14VZrTiwH+Mhhxh4nZSc7QUg9SjrZBNFb3eRneZzfsLNjHZvnZxamf/6SM4cNorMVvKSzQKFBag2zw==","signatures":[{"sig":"MEYCIQCE3+3UOKQ3d2IODpAFbYOymT+sz7aqpe6imGHq+GgTFgIhAP7CWMBalpRAP7Yv7DR65lTsMgMpJqi+5YDss837Mxr7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10935},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"6.14.16","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"12.22.12","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.30_1753114720962_0.8124525074667215","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.31","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.31","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"c7384ee33f1fcdfffa686ebc94cd6d720ee4d6f7","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.31.tgz","fileCount":4,"integrity":"sha512-E30bhWfJDJKwnjvzQYWX6FmFsV/Sc6Lq8Nab66cTcdPs8wOotr8gAyfdJ3aM04w3iLNQSgODCXzKBKbbYjUG6w==","signatures":[{"sig":"MEQCIErQUQod2L9nrgO3nHInSxtvD9fhpmbFiddZ1gwEiN6lAiB8lmkAIF/jY9U7T5eIjc+9mwhH9xem1aq81O17tFn0ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10928},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"6.14.16","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"12.22.12","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.31_1753114889081_0.04646651760737508","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.32","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.32","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"5b7cab808490f620510c76faf480e88c73586010","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.32.tgz","fileCount":4,"integrity":"sha512-8kPaj7EheM5L7Q7GT9wi564GmV2c0wU6NzTnm622w7HMkOWvF7M/WzMBkZYs5aUrIdaZWCIshjNnXRXoowiyuA==","signatures":[{"sig":"MEQCIAE+nqPJYOo+D1EEnBfcXlTMGc7rbVWbdLxxGulZVabkAiABkEAGoNqDT36NZeu9c2fKwEAWqONzrPOlos58rjKqrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10958},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"6.14.16","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"12.22.12","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.32_1753184335734_0.27573389474006027","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.33","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.33","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"076bf4c04f4071242f72522a254437a7e4e9ad73","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.33.tgz","fileCount":4,"integrity":"sha512-D8HwiEr21TEon7ZR0KahdgllFMbYxogH17VMgXEG0PNjbnnKAkI8cUtkTEJ4TgrnsNVPGRp4qC6zzhLM1Z3cMA==","signatures":[{"sig":"MEYCIQCLJVfjUTDpV6Tp1S5v0qhu2YuPaWFcN4GIGCSZxSxftgIhAI8WOonFceSKCb6t2tF8FFfCSqVfwNWxCJCEEy0fwMdT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10976},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"6.14.16","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"12.22.12","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.33_1753184537463_0.14945340208001712","host":"s3://npm-registry-packages-npm-production"}},"1.0.34":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.34","keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","_id":"@bridgera-iot/bridgera-structured-logger@1.0.34","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"dist":{"shasum":"b4e761d7d4b0fb5abba2cbeba2d5cce48f8386b7","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.34.tgz","fileCount":4,"integrity":"sha512-1WoU5C1UWUpQoq3DSC2IhW6GHec7QUWt3AsmwmEdZmIXMSXNvHCHbWIG1tjf7XaBVEVkLock792qlfjP5ct6jQ==","signatures":[{"sig":"MEQCIDv2UTOnSrP1g7a/nArqQ9zu1wSxAZ6MA26h5YHXJPK3AiA1JcCw6Km37RRTOhw5hwCmE6dussSp+yAvD9B1uW3jZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11033},"main":"index.js","scripts":{"test":"node test.js"},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"_npmVersion":"10.5.2","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"nodemailer":"^6.9.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bridgera-structured-logger_1.0.34_1753372510520_0.29066338938656444","host":"s3://npm-registry-packages-npm-production"}},"1.0.35":{"name":"@bridgera-iot/bridgera-structured-logger","version":"1.0.35","description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","main":"index.js","scripts":{"test":"node test.js"},"keywords":["logger","structured","json","logging","console"],"author":{"name":"Biplob Bose"},"license":"MIT","dependencies":{"nodemailer":"^6.9.4"},"_id":"@bridgera-iot/bridgera-structured-logger@1.0.35","_nodeVersion":"20.13.1","_npmVersion":"10.5.2","dist":{"integrity":"sha512-d1jbRyaXczuUKmLMWja0AlmYuWYGGroZM+4jSRnknQeUNsZQ117A7ZNQfOAUfFfY1j0MHDvBE3gOPxoh3/V8mA==","shasum":"77dda26898bcc48786955d97034ca9bfdd5974e2","tarball":"https://registry.npmjs.org/@bridgera-iot/bridgera-structured-logger/-/bridgera-structured-logger-1.0.35.tgz","fileCount":4,"unpackedSize":11051,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCIQVbMLPLJ5IJWZcg+fD8MZ9dc0pGcTGXSR8Ci+RkzgQIhAIWp+aixjJJa2rKVMD0jacQMHs0vZZ1hAbMw7OQy7VoG"}]},"_npmUser":{"name":"biplob.bose","email":"biplob.bose@bridgera.com"},"directories":{},"maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bridgera-structured-logger_1.0.35_1754479992227_0.6944067286963103"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-11T10:47:54.272Z","modified":"2025-08-06T11:33:12.675Z","1.0.0":"2025-07-07T10:59:09.271Z","1.0.2":"2025-07-07T12:08:19.637Z","1.0.4":"2025-07-07T18:03:05.110Z","1.0.5":"2025-07-07T18:09:32.715Z","1.0.6":"2025-07-07T18:13:45.099Z","1.0.7":"2025-07-07T18:14:54.983Z","1.0.8":"2025-07-07T18:19:03.546Z","1.0.9":"2025-07-07T18:24:46.427Z","1.0.10":"2025-07-08T08:01:41.125Z","1.0.1":"2025-07-08T08:13:37.164Z","1.0.12":"2025-07-08T08:21:11.671Z","1.0.13":"2025-07-08T08:24:55.398Z","1.0.14":"2025-07-08T08:27:14.390Z","1.0.15":"2025-07-08T12:11:48.871Z","1.0.16":"2025-07-11T10:47:54.521Z","1.0.17":"2025-07-11T13:45:49.190Z","1.0.18":"2025-07-11T14:13:51.548Z","1.0.19":"2025-07-11T14:24:44.597Z","1.0.20":"2025-07-11T14:33:39.661Z","1.0.21":"2025-07-11T14:36:58.318Z","1.0.22":"2025-07-11T14:43:13.765Z","1.0.23":"2025-07-11T14:48:05.274Z","1.0.24":"2025-07-11T14:52:35.625Z","1.0.25":"2025-07-14T07:07:11.790Z","1.0.26":"2025-07-15T06:38:05.711Z","1.0.27":"2025-07-21T14:39:41.557Z","1.0.28":"2025-07-21T14:46:33.019Z","1.0.29":"2025-07-21T16:16:05.559Z","1.0.30":"2025-07-21T16:18:41.128Z","1.0.31":"2025-07-21T16:21:29.255Z","1.0.32":"2025-07-22T11:38:55.957Z","1.0.33":"2025-07-22T11:42:17.644Z","1.0.34":"2025-07-24T15:55:10.682Z","1.0.35":"2025-08-06T11:33:12.400Z"},"author":{"name":"Biplob Bose"},"license":"MIT","keywords":["logger","structured","json","logging","console"],"description":"A lightweight structured logger for Node.js with JSON output to console and file, supporting custom transports.","maintainers":[{"name":"bridgeraiot","email":"iot-automation@bridgera.com"},{"name":"avirup_bridgera","email":"avirup.das@bridgera.com"},{"name":"sudbiswa","email":"sudipta.biswas@bridgera.com"},{"name":"bikram_mondal","email":"bikram.mondal@bridgera.com"},{"name":"biplob.bose","email":"biplob.bose@bridgera.com"}],"readme":"# Bridgera Structured Logger\n\nA lightweight, structured JSON logger for Node.js that prints logs to console (and optional files via Log4js) and sends critical logs via email using Nodemailer.\n\n---\n\n## Features\n\n- **Structured JSON output**: Consistent log schema with timestamps, levels, service name, function and file context, plus custom metadata.\n- **Email notifications**: Optional email alerts for `error` logs (or any level) with customizable thresholds and templates.\n- **Caller identification**: Automatically captures the calling function name and source file, skipping internal and third-party frames.\n- **Flexible control flags**: Per-log flags to force email (`sendEmail`), silence email (`sendEmail: false`), or mark critical (`critical`).\n- **Environment modes**: Pretty-printed JSON in `development`, compact in `production`.\n\n---\n\n## Installation\n\n```bash\nnpm install bridgera-structured-logger\n```\n\nOr, if you prefer Yarn:\n\n```bash\nyarn add bridgera-structured-logger\n```\n\n---\n\n## Quick Start\n\n```js\nconst StructuredLogger = require(\"bridgera-structured-logger\");\n\n// Instantiate with email notifications on errors:\nconst logger = new StructuredLogger(\n  \"my-service\", // serviceName\n  process.env.NODE_ENV || \"development\", // env\n  {\n    transport: {\n      host: \"smtp.mailtrap.io\",\n      port: 587,\n      secure: false,\n      auth: {\n        user: \"your-smtp-user\",\n        pass: \"your-smtp-pass\",\n      },\n    },\n    from: \"no-reply@yourapp.com\",\n    to: \"alerts@yourapp.com\",\n    level: \"error\", // only send email for `error` and above\n    subjectTemplate: \"{{message}}\", // default template uses log message\n  }\n);\n\n// Logging examples:\nlogger.info(\"Server started\", { port: 3000 });\nlogger.warn(\"Cache miss\", { key: \"user:1234\" });\nlogger.error(\"Database connection failed\", {\n  errorMessage: err.message,\n  stackTrace: err.stack,\n});\n```\n\nLogs will be printed as JSON to the console, and `error` calls will trigger an email alert.\n\n---\n\n## API Reference\n\n### `new StructuredLogger(serviceName, env, emailOptions)`\n\n- `serviceName` _(string, default: `\"default-service\"`)_ — Identifier for your application or module.\n- `env` _(\"development\" | \"production\"; default: \"development\")_ — Controls pretty-printing of JSON output.\n- `emailOptions` _(object, optional)_ — Configuration for email alerts:\n  - `transport` _(object)_ — Nodemailer transport options (`host`, `port`, `auth`, etc.).\n  - `from` _(string)_ — Sender email address.\n  - `to` _(string)_ — Recipient email address.\n  - `level` _(\"error\" | \"warn\" | \"info\"; default: \"error\")_ — Minimum log level that triggers email.\n  - `subjectTemplate` _(string; default: `\"{{message}}\"`)_ — Template for the email subject. Available tokens:\n    - `{{service}}` — service name\n    - `{{level}}` — log level\n    - `{{message}}` — the log message\n\n### `.log(level, message, meta)`\n\nLow-level log method. Automatically called by the helper methods below.\n\n- `level` _(\"info\" | \"warn\" | \"error\")_ — Log severity.\n- `message` _(string)_ — Main log message.\n- `meta` _(object, optional)_ — Additional structured data.\n  - `sendEmail: true|false` — Force or suppress email for this call.\n  - `critical: true` — Always send email regardless of level.\n  - Any other custom fields to include in the log JSON.\n\n### Convenience Methods\n\n- `.info(message, meta)` — Shorthand for `log('info', message, meta)`.\n- `.warn(message, meta)` — Shorthand for `log('warn', message, meta)`.\n- `.error(message, meta)` — Shorthand for `log('error', message, meta)`.\n\n---\n\n## Advanced Configuration\n\n### Caller Context\n\nAutomatically captures the calling function and file path:\n\n```json\n{\n  \"function\": \"doSomething\",\n  \"file\": \"controllers/myController.js\"\n}\n```\n\nYou can customize the skip logic by modifying `_getCaller()` in `index.js` if you have additional wrappers to ignore.\n\n### Global Error & Rejection Handling\n\nIn your application entry point, you can catch process-level errors:\n\n```js\nprocess.on(\"unhandledRejection\", (reason) => {\n  logger.error(\"Unhandled Promise Rejection\", {\n    errorMessage: reason.message,\n    stackTrace: reason.stack,\n  });\n});\n\nprocess.on(\"uncaughtException\", (err) => {\n  logger.error(\"Uncaught Exception\", {\n    errorMessage: err.message,\n    stackTrace: err.stack,\n  });\n  process.exit(1);\n});\n```\n\n---\n\n## Examples\n\n#### Force Email on Info\n\n```js\nlogger.info(\"Manual alert\", { sendEmail: true });\n```\n\n#### Suppress Email on Error\n\n```js\nlogger.error(\"Non-critical error\", { sendEmail: false });\n```\n\n#### Mark a Warning as Critical\n\n```js\nlogger.warn(\"Threshold breached\", { critical: true });\n```\n\n---\n\n## Testing Locally\n\nUse **npm link**, **npm pack**, or `file:` dependencies to test unpublished changes (see [Testing your module locally](#testing-your-module-locally)).\n\n---\n\n## Contributing\n\n1. Fork the repo\n2. `npm install`\n3. Add features or bug fixes\n4. `npm test`\n5. Submit a pull request\n\n---\n\n## License\n\nMIT © Bridgera IOT Team\n","readmeFilename":"README.md"}