@meshwatch/logging
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -1,2 +0,2 @@ | ||
export { default as logger } from './logger'; | ||
export { default as logger, createLogger } from './logger'; | ||
export { default as debuggy } from './middleware'; |
@@ -0,1 +1,2 @@ | ||
import { Logger, LoggerOptions } from './types'; | ||
declare const LAMBDA_CONTEXT: { | ||
@@ -9,8 +10,4 @@ awsRegion: string | undefined; | ||
export declare type LoggingContext = typeof LAMBDA_CONTEXT; | ||
declare const logger: { | ||
info: (msg: string, params?: object | undefined) => void; | ||
debug: (msg: string, params?: object | undefined) => void; | ||
warn: (msg: string, error?: Error | undefined, params?: object | undefined) => void; | ||
error: (msg: string, error: Error, params?: object | undefined) => void; | ||
}; | ||
export declare function createLogger(opts?: LoggerOptions): Logger; | ||
declare const logger: Logger; | ||
export default logger; |
@@ -55,10 +55,2 @@ 'use strict'; | ||
const logLevelName = () => { | ||
return process.env.LOG_LEVEL || DEFAULT_LOG_LEVEL; | ||
}; | ||
const isEnabled = logLevel => { | ||
return logLevel >= LogLevelMappings[logLevelName()]; | ||
}; | ||
const isDebugForwarded = () => { | ||
@@ -81,11 +73,22 @@ const globalContext = get(); | ||
const log = (levelName, message, params = {}) => { | ||
const levelEnabled = isEnabled(LogLevelMappings[levelName]); | ||
const debugEnabled = isDebugForwarded(); | ||
function createLogger(opts = {}) { | ||
const { | ||
logLevel | ||
} = opts; | ||
if (!levelEnabled && !debugEnabled) { | ||
return; | ||
} | ||
const logLevelName = () => { | ||
return logLevel || process.env.LOG_LEVEL || DEFAULT_LOG_LEVEL; | ||
}; | ||
if (isLambda()) { | ||
const isEnabled = logLevel => { | ||
return logLevel >= LogLevelMappings[logLevelName()]; | ||
}; | ||
const skipLogging = levelName => { | ||
const levelEnabled = isEnabled(LogLevelMappings[levelName]); | ||
const debugEnabled = isDebugForwarded(); | ||
return !levelEnabled && !debugEnabled; | ||
}; | ||
function productionStream(levelName, message, params) { | ||
const context = getContext(); | ||
@@ -98,3 +101,5 @@ | ||
console.log(JSON.stringify(logMsg)); | ||
} else { | ||
} | ||
function developmentStream(levelName, message, params) { | ||
console.log(levelName, message, util.inspect(params, { | ||
@@ -104,31 +109,46 @@ depth: Infinity | ||
} | ||
}; | ||
const debug = (msg, params) => { | ||
log('DEBUG', msg, params); | ||
}; | ||
const logStream = isLambda() ? productionStream : developmentStream; | ||
const info = (msg, params) => { | ||
log('INFO', msg, params); | ||
}; | ||
const log = (levelName, message, params = {}) => { | ||
if (skipLogging(levelName)) { | ||
return; | ||
} | ||
const warn = (msg, error, params) => { | ||
log('WARN', msg, appendError(error, params)); | ||
}; | ||
logStream(levelName, message, params); | ||
}; | ||
const error = (msg, error, params) => { | ||
log('ERROR', msg, appendError(error, params)); | ||
}; | ||
const debug = (msg, params) => { | ||
log('DEBUG', msg, params); | ||
}; | ||
const logger = { | ||
info, | ||
debug, | ||
warn, | ||
error | ||
}; | ||
const info = (msg, params) => { | ||
log('INFO', msg, params); | ||
}; | ||
const DEFAULT_SAMPLE_RATE = 0.05; // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
const warn = (msg, error, params) => { | ||
log('WARN', msg, appendError(error, params)); | ||
}; | ||
const error = (msg, error, params) => { | ||
log('ERROR', msg, appendError(error, params)); | ||
}; | ||
return { | ||
info, | ||
debug, | ||
warn, | ||
error | ||
}; | ||
} | ||
const logger = | ||
/*#__PURE__*/ | ||
createLogger(); | ||
const { | ||
DEBUG_SAMPLE_RATE = '0.05' | ||
} = process.env; // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
var middleware = (({ | ||
sampleRate = DEFAULT_SAMPLE_RATE | ||
sampleRate = parseFloat(DEBUG_SAMPLE_RATE) | ||
} = {}) => { | ||
@@ -166,4 +186,5 @@ let oldLogLevel; | ||
exports.createLogger = createLogger; | ||
exports.debuggy = middleware; | ||
exports.logger = logger; | ||
//# sourceMappingURL=logging.cjs.development.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";var e,r=(e=require("util"))&&"object"==typeof e&&"default"in e?e.default:e;function s(){return(s=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var s=arguments[r];for(var o in s)Object.prototype.hasOwnProperty.call(s,o)&&(e[o]=s[o])}return e}).apply(this,arguments)}const o=global;let n=()=>o.CONTEXT||{};const t={DEBUG:0,INFO:1,WARN:2,ERROR:3},c={awsRegion:process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION,functionName:process.env.AWS_LAMBDA_FUNCTION_NAME,functionVersion:process.env.AWS_LAMBDA_FUNCTION_VERSION,functionMemorySize:process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE,stage:process.env.ENVIRONMENT||process.env.STAGE},a=(e,r={})=>e?s({},r,{errorName:e.name,errorMessage:e.message,stackTrace:e.stack}):r,i=(e,o,a={})=>{const i=(e=>e>=t[(()=>process.env.LOG_LEVEL||"INFO")()])(t[e]),E=(()=>{const e=n();return"true"===process.env.DEBUG_LOG||"true"===e["Debug-Log-Enabled"]})();if(i||E)if((()=>!(!process.env.LAMBDA_TASK_ROOT||!process.env.AWS_EXECUTION_ENV))()){const r=(()=>{const e=n();return s({},c,{},e)})(),t=s({},r,{},a);t.level=e,t.message=o,console.log(JSON.stringify(t))}else console.log(e,o,r.inspect(a,{depth:Infinity}))},E={info:(e,r)=>{i("INFO",e,r)},debug:(e,r)=>{i("DEBUG",e,r)},warn:(e,r,s)=>{i("WARN",e,a(r,s))},error:(e,r,s)=>{i("ERROR",e,a(r,s))}};exports.debuggy=(({sampleRate:e=.05}={})=>{let r;return{before:(s,o)=>{Math.random()<=e&&(r=process.env.LOG_LEVEL,process.env.LOG_LEVEL="DEBUG"),o()},after:(e,s)=>{r&&(process.env.LOG_LEVEL=void 0),s()},onError:(e,r)=>{const{awsRequestId:s}=e.context,o=JSON.stringify(e.event);E.error("invocation failed",e.error,{awsRequestId:s,invocationEvent:o}),r(e.error)}}}),exports.logger=E; | ||
"use strict";var e,r=(e=require("util"))&&"object"==typeof e&&"default"in e?e.default:e;function n(){return(n=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}const o=global;let s=()=>o.CONTEXT||{};const t=()=>!(!process.env.LAMBDA_TASK_ROOT||!process.env.AWS_EXECUTION_ENV),c={DEBUG:0,INFO:1,WARN:2,ERROR:3},a="INFO",E={awsRegion:process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION,functionName:process.env.AWS_LAMBDA_FUNCTION_NAME,functionVersion:process.env.AWS_LAMBDA_FUNCTION_VERSION,functionMemorySize:process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE,stage:process.env.ENVIRONMENT||process.env.STAGE},i=()=>{const e=s();return n({},E,{},e)},p=()=>{const e=s();return"true"===process.env.DEBUG_LOG||"true"===e["Debug-Log-Enabled"]},u=(e,r={})=>e?n({},r,{errorName:e.name,errorMessage:e.message,stackTrace:e.stack}):r;function O(e={}){const{logLevel:o}=e,s=()=>o||process.env.LOG_LEVEL||a,E=t()?function(e,r,o){const s=n({},i(),{},o);s.level=e,s.message=r,console.log(JSON.stringify(s))}:function(e,n,o){console.log(e,n,r.inspect(o,{depth:Infinity}))},O=(e,r,n={})=>{(e=>{const r=(e=>e>=c[s()])(c[e]),n=p();return!r&&!n})(e)||E(e,r,n)};return{info:(e,r)=>{O("INFO",e,r)},debug:(e,r)=>{O("DEBUG",e,r)},warn:(e,r,n)=>{O("WARN",e,u(r,n))},error:(e,r,n)=>{O("ERROR",e,u(r,n))}}}const v=O(),{DEBUG_SAMPLE_RATE:N="0.05"}=process.env;exports.createLogger=O,exports.debuggy=(({sampleRate:e=parseFloat(N)}={})=>{let r;return{before:(n,o)=>{Math.random()<=e&&(r=process.env.LOG_LEVEL,process.env.LOG_LEVEL="DEBUG"),o()},after:(e,n)=>{r&&(process.env.LOG_LEVEL=void 0),n()},onError:(e,r)=>{const{awsRequestId:n}=e.context,o=JSON.stringify(e.event);v.error("invocation failed",e.error,{awsRequestId:n,invocationEvent:o}),r(e.error)}}}),exports.logger=v; | ||
//# sourceMappingURL=logging.cjs.production.min.js.map |
@@ -51,10 +51,2 @@ import util from 'util'; | ||
const logLevelName = () => { | ||
return process.env.LOG_LEVEL || DEFAULT_LOG_LEVEL; | ||
}; | ||
const isEnabled = logLevel => { | ||
return logLevel >= LogLevelMappings[logLevelName()]; | ||
}; | ||
const isDebugForwarded = () => { | ||
@@ -77,11 +69,22 @@ const globalContext = get(); | ||
const log = (levelName, message, params = {}) => { | ||
const levelEnabled = isEnabled(LogLevelMappings[levelName]); | ||
const debugEnabled = isDebugForwarded(); | ||
function createLogger(opts = {}) { | ||
const { | ||
logLevel | ||
} = opts; | ||
if (!levelEnabled && !debugEnabled) { | ||
return; | ||
} | ||
const logLevelName = () => { | ||
return logLevel || process.env.LOG_LEVEL || DEFAULT_LOG_LEVEL; | ||
}; | ||
if (isLambda()) { | ||
const isEnabled = logLevel => { | ||
return logLevel >= LogLevelMappings[logLevelName()]; | ||
}; | ||
const skipLogging = levelName => { | ||
const levelEnabled = isEnabled(LogLevelMappings[levelName]); | ||
const debugEnabled = isDebugForwarded(); | ||
return !levelEnabled && !debugEnabled; | ||
}; | ||
function productionStream(levelName, message, params) { | ||
const context = getContext(); | ||
@@ -94,3 +97,5 @@ | ||
console.log(JSON.stringify(logMsg)); | ||
} else { | ||
} | ||
function developmentStream(levelName, message, params) { | ||
console.log(levelName, message, util.inspect(params, { | ||
@@ -100,31 +105,46 @@ depth: Infinity | ||
} | ||
}; | ||
const debug = (msg, params) => { | ||
log('DEBUG', msg, params); | ||
}; | ||
const logStream = isLambda() ? productionStream : developmentStream; | ||
const info = (msg, params) => { | ||
log('INFO', msg, params); | ||
}; | ||
const log = (levelName, message, params = {}) => { | ||
if (skipLogging(levelName)) { | ||
return; | ||
} | ||
const warn = (msg, error, params) => { | ||
log('WARN', msg, appendError(error, params)); | ||
}; | ||
logStream(levelName, message, params); | ||
}; | ||
const error = (msg, error, params) => { | ||
log('ERROR', msg, appendError(error, params)); | ||
}; | ||
const debug = (msg, params) => { | ||
log('DEBUG', msg, params); | ||
}; | ||
const logger = { | ||
info, | ||
debug, | ||
warn, | ||
error | ||
}; | ||
const info = (msg, params) => { | ||
log('INFO', msg, params); | ||
}; | ||
const DEFAULT_SAMPLE_RATE = 0.05; // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
const warn = (msg, error, params) => { | ||
log('WARN', msg, appendError(error, params)); | ||
}; | ||
const error = (msg, error, params) => { | ||
log('ERROR', msg, appendError(error, params)); | ||
}; | ||
return { | ||
info, | ||
debug, | ||
warn, | ||
error | ||
}; | ||
} | ||
const logger = | ||
/*#__PURE__*/ | ||
createLogger(); | ||
const { | ||
DEBUG_SAMPLE_RATE = '0.05' | ||
} = process.env; // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
var middleware = (({ | ||
sampleRate = DEFAULT_SAMPLE_RATE | ||
sampleRate = parseFloat(DEBUG_SAMPLE_RATE) | ||
} = {}) => { | ||
@@ -162,3 +182,3 @@ let oldLogLevel; | ||
export { middleware as debuggy, logger }; | ||
export { createLogger, middleware as debuggy, logger }; | ||
//# sourceMappingURL=logging.esm.js.map |
export declare type Dictionary<T> = { | ||
[key: string]: T; | ||
}; | ||
export declare type Logger = { | ||
debug: (msg: string, params?: object) => void; | ||
info: (msg: string, params?: object) => void; | ||
warn: (msg: string, error?: Error, params?: object) => void; | ||
error: (msg: string, error: Error, params?: object) => void; | ||
}; | ||
export declare type LoggerOptions = { | ||
logLevel?: 'DEBUG' | 'INFO' | 'WARN' | 'ERROR'; | ||
}; |
{ | ||
"name": "@meshwatch/logging", | ||
"description": "NodeJS serverless logging", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"license": "UNLICENSED", | ||
@@ -47,3 +47,3 @@ "source": "src/index.ts", | ||
"semantic-release": "^15.13.19", | ||
"sinon": "^7.3.2", | ||
"sinon": "^7.4.0", | ||
"ts-jest": "^24.0.2", | ||
@@ -50,0 +50,0 @@ "tsdx": "^0.7.2", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
49996
358
46