@pioneer-platform/loggerdog
Advanced tools
Comparing version 8.1.22 to 8.1.24
@@ -1,13 +0,1 @@ | ||
declare const LOG_LEVELS: any; | ||
declare const DEFAULT_LOG_LEVEL: string; | ||
declare function _extractContext(stack: string, depth: number): { | ||
filename: string; | ||
line: string; | ||
pos: string; | ||
} | { | ||
filename: string; | ||
line?: undefined; | ||
pos?: undefined; | ||
}; | ||
declare function _getContextString(): string; | ||
declare class Logger { | ||
@@ -17,4 +5,5 @@ private _tag; | ||
constructor(); | ||
_setLogLevel(): void; | ||
_log(level: any, ...args: any): void; | ||
_log(level: string, ...args: any[]): void; | ||
} | ||
export declare function loggerFactory(): Logger; | ||
export {}; |
144
lib/index.js
"use strict"; | ||
/* | ||
Logger-dog | ||
A data-dog logger system | ||
Set DEBUG log level | ||
SET ENV | ||
***** NOTE ***** | ||
DEFAULT_LOG_LEVEL=DEBUG | ||
****************************** | ||
Notes: | ||
Defaults to a basic logger if no ENV found | ||
Publish to datadog if DATADOG_API_KEY found | ||
Publish to redis if REDIS_CONNECTION found | ||
*** PRODUCTION NOTES **** | ||
STRUCTURED_LOGGING=true | ||
************************* | ||
Structured logging guarantees logs do not have line breaks in datadog intake | ||
Turn on Datadog logs: | ||
* DATADOG_REST_INTAKE = true | ||
* DATADOG_API_KEY = "key**" | ||
Note: | ||
TODO | ||
Log batching ? | ||
*/ | ||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.loggerFactory = void 0; | ||
var LOG_LEVELS = { | ||
@@ -61,33 +15,16 @@ TEST: { val: 0, label: 'TEST', color: 'color: cyan' }, | ||
DEBUG: { val: 7, label: 'DEBUG', color: 'color: green' }, | ||
DEBUGV: { val: 8, label: 'DEBUG', color: 'color: green' }, | ||
DEBUGVV: { val: 9, label: 'DEBUG', color: 'color: green' } | ||
DEBUGV: { val: 8, label: 'DEBUGV', color: 'color: green' }, | ||
DEBUGVV: { val: 9, label: 'DEBUGVV', color: 'color: green' } | ||
}; | ||
var DEFAULT_LOG_LEVEL = typeof process !== 'undefined' ? (process.env['DEFAULT_LOG_LEVEL'] || 'INFO') : 'INFO'; | ||
function _extractContext(stack, depth) { | ||
try { | ||
var arr = stack.split('\n'); | ||
var chunks = arr[depth].split('/'); | ||
var business = chunks[chunks.length - 1]; // ha ha! | ||
var matches = business.match(/^([^:]+):(\d+):(\d+)/i) || ""; | ||
var filename = matches[1]; | ||
var line = matches[2]; | ||
var pos = matches[3]; | ||
return { filename: filename, line: line, pos: pos }; | ||
} | ||
catch (ex) { | ||
return { filename: 'unknown' }; | ||
} | ||
} | ||
var DEFAULT_LOG_LEVEL = 'INFO'; | ||
function _getContextString() { | ||
var stack = new Error().stack || ""; | ||
// console.log(`stack`, stack) | ||
var _a = _extractContext(stack, 3), filename = _a.filename, line = _a.line, pos = _a.pos; | ||
return "[".concat(filename, ":").concat(line, ":").concat(pos, "]"); | ||
var arr = stack.split('\n'); | ||
var business = arr[3].split('/').pop() || ''; | ||
var matches = business.match(/^([^:]+):(\d+):(\d+)/i) || []; | ||
return "[".concat(matches[1] || 'unknown', ":").concat(matches[2], ":").concat(matches[3], "]"); | ||
} | ||
var Logger = /** @class */ (function () { | ||
function Logger() { | ||
var stack = new Error().stack || ""; | ||
// console.log(`stack`, stack) | ||
var ctx = _extractContext(stack, 3); | ||
this._tag = ctx.filename || ""; | ||
this._tag = _getContextString(); | ||
for (var lvl in LOG_LEVELS) { | ||
@@ -97,19 +34,4 @@ // @ts-ignore | ||
} | ||
this._setLogLevel(); | ||
this._level = LOG_LEVELS[DEFAULT_LOG_LEVEL].val; | ||
} | ||
Logger.prototype._setLogLevel = function () { | ||
var tag = this._tag.split('.')[0]; // strip out suffix | ||
tag = tag.toUpperCase().replace('-', '_'); // CAPITALS_AND_UNDERSCORES | ||
var level = typeof process !== 'undefined' ? (process.env['LOG_LEVEL_' + tag] || null) : null; | ||
//console.log("level: ",level) | ||
// @ts-ignore | ||
if (level && LOG_LEVELS[level] !== undefined) { | ||
// @ts-ignore | ||
this._level = LOG_LEVELS[level].val; | ||
} | ||
else { | ||
// @ts-ignore | ||
this._level = LOG_LEVELS[DEFAULT_LOG_LEVEL].val; | ||
} | ||
}; | ||
Logger.prototype._log = function (level) { | ||
@@ -120,5 +42,2 @@ var args = []; | ||
} | ||
//console.log('level: ',level) | ||
//console.log('this._level: ',this._level) | ||
//console.log('LOG_LEVELS[level].val: ',LOG_LEVELS[level].val) | ||
if (this._level >= LOG_LEVELS[level].val) { | ||
@@ -129,27 +48,13 @@ var dt = new Date().toISOString().replace('T', ' '); | ||
var color = LOG_LEVELS[level].color; | ||
var message = void 0; | ||
if (typeof process !== 'undefined' && process.env['STRUCTURED_LOGGING']) { | ||
message = {}; | ||
//console.log(args) | ||
var tag = args[0]; | ||
var param = args[1]; | ||
var value = args[2]; | ||
if (typeof (args) === 'object') { | ||
message.loggerdog = true; | ||
message.label = label; | ||
message.param = param; | ||
message.value = value; | ||
message.ctx = ctx; | ||
message.dt = dt; | ||
message.tag = tag.toString(); | ||
message.raw = args.toString(); | ||
} | ||
else { | ||
message.raw = args; | ||
} | ||
console.log('%c ' + dt, color, label, ctx, message); | ||
} | ||
else { | ||
console.log.apply(console, __spreadArray(['%c ' + dt, color, label, ctx], args, false)); | ||
} | ||
var message = { | ||
loggerdog: true, | ||
label: label, | ||
param: args[1], | ||
value: args[2], | ||
ctx: ctx, | ||
dt: dt, | ||
tag: args[0].toString(), | ||
raw: args.toString(), | ||
}; | ||
console.log('%c ' + dt, color, label, ctx, message); | ||
} | ||
@@ -159,4 +64,5 @@ }; | ||
}()); | ||
module.exports = function () { | ||
function loggerFactory() { | ||
return new Logger(); | ||
}; | ||
} | ||
exports.loggerFactory = loggerFactory; |
{ | ||
"name": "@pioneer-platform/loggerdog", | ||
"version": "8.1.22", | ||
"version": "8.1.24", | ||
"main": "./lib/index.js", | ||
@@ -5,0 +5,0 @@ "types": "./lib/main.d.ts", |
173
src/index.ts
@@ -1,48 +0,14 @@ | ||
/* | ||
Logger-dog | ||
A data-dog logger system | ||
type LogLevel = { | ||
val: number; | ||
label: string; | ||
color: string; | ||
} | ||
Set DEBUG log level | ||
SET ENV | ||
***** NOTE ***** | ||
DEFAULT_LOG_LEVEL=DEBUG | ||
****************************** | ||
Notes: | ||
Defaults to a basic logger if no ENV found | ||
Publish to datadog if DATADOG_API_KEY found | ||
Publish to redis if REDIS_CONNECTION found | ||
*** PRODUCTION NOTES **** | ||
STRUCTURED_LOGGING=true | ||
************************* | ||
Structured logging guarantees logs do not have line breaks in datadog intake | ||
Turn on Datadog logs: | ||
* DATADOG_REST_INTAKE = true | ||
* DATADOG_API_KEY = "key**" | ||
Note: | ||
TODO | ||
Log batching ? | ||
*/ | ||
const LOG_LEVELS:any = { | ||
const LOG_LEVELS: Record<string, LogLevel> = { | ||
TEST: { val: 0, label: 'TEST', color: 'color: cyan' }, | ||
EMERG: { val: 0, label: 'EMERG', color: 'color: magenta' }, | ||
ALERT: { val: 1, label: 'ALERT', color: 'color: magenta' }, | ||
CRIT: { val: 2, label: 'CRIT', color: 'color: red' }, | ||
CRIT: { val: 2, label: 'CRIT', color: 'color: red' }, | ||
ERROR: { val: 3, label: 'ERROR', color: 'color: red' }, | ||
WARN: { val: 4, label: 'WARN', color: 'color: orange' }, | ||
WARN: { val: 4, label: 'WARN', color: 'color: orange' }, | ||
NOTICE: { val: 5, label: 'NOTICE', color: 'color: yellow' }, | ||
@@ -52,103 +18,46 @@ VERBOSE: { val: 6, label: 'VERBOSE', color: 'color: cyan' }, | ||
DEBUG: { val: 7, label: 'DEBUG', color: 'color: green' }, | ||
DEBUGV: { val: 8, label: 'DEBUG', color: 'color: green' }, | ||
DEBUGVV: { val: 9, label: 'DEBUG', color: 'color: green' } | ||
DEBUGV: { val: 8, label: 'DEBUGV', color: 'color: green' }, | ||
DEBUGVV: { val: 9, label: 'DEBUGVV', color: 'color: green' } | ||
} | ||
const DEFAULT_LOG_LEVEL = typeof process !== 'undefined' ? (process.env['DEFAULT_LOG_LEVEL'] || 'INFO') : 'INFO'; | ||
const DEFAULT_LOG_LEVEL = 'INFO'; | ||
function _extractContext(stack: string, depth: number) { | ||
try { | ||
let arr = stack.split('\n') | ||
let chunks = arr[depth].split('/') | ||
let business = chunks[chunks.length - 1] // ha ha! | ||
let matches = business.match(/^([^:]+):(\d+):(\d+)/i) || "" | ||
let filename = matches[1] | ||
let line = matches[2] | ||
let pos = matches[3] | ||
return { filename, line, pos } | ||
} catch (ex) { | ||
return { filename: 'unknown' } | ||
} | ||
} | ||
function _getContextString() { | ||
let stack = new Error().stack || "" | ||
// console.log(`stack`, stack) | ||
let { filename, line, pos } = _extractContext(stack, 3) | ||
return `[${filename}:${line}:${pos}]` | ||
const stack = new Error().stack || ""; | ||
const arr = stack.split('\n'); | ||
const business = arr[3].split('/').pop() || ''; | ||
const matches = business.match(/^([^:]+):(\d+):(\d+)/i) || []; | ||
return `[${matches[1] || 'unknown'}:${matches[2]}:${matches[3]}]`; | ||
} | ||
class Logger { | ||
private _tag: any; | ||
private _level: any; | ||
private _tag: string; | ||
private _level: number; | ||
constructor() { | ||
let stack = new Error().stack || "" | ||
// console.log(`stack`, stack) | ||
let ctx = _extractContext(stack, 3) | ||
this._tag = ctx.filename || "" | ||
for ( let lvl in LOG_LEVELS ) { | ||
this._tag = _getContextString(); | ||
for (const lvl in LOG_LEVELS) { | ||
// @ts-ignore | ||
this[lvl.toLowerCase()] = this._log.bind(this, lvl) | ||
this[lvl.toLowerCase()] = this._log.bind(this, lvl); | ||
} | ||
this._setLogLevel() | ||
this._level = LOG_LEVELS[DEFAULT_LOG_LEVEL].val; | ||
} | ||
_setLogLevel() { | ||
let tag = this._tag.split('.')[0] // strip out suffix | ||
tag = tag.toUpperCase().replace('-', '_') // CAPITALS_AND_UNDERSCORES | ||
let level = typeof process !== 'undefined' ? (process.env['LOG_LEVEL_'+tag] || null) : null; | ||
//console.log("level: ",level) | ||
// @ts-ignore | ||
if ( level && LOG_LEVELS[level] !== undefined ) { | ||
// @ts-ignore | ||
this._level = LOG_LEVELS[level].val | ||
} else { | ||
// @ts-ignore | ||
this._level = LOG_LEVELS[DEFAULT_LOG_LEVEL].val | ||
} | ||
} | ||
_log(level:any, ...args:any) { | ||
//console.log('level: ',level) | ||
//console.log('this._level: ',this._level) | ||
//console.log('LOG_LEVELS[level].val: ',LOG_LEVELS[level].val) | ||
if ( this._level >= LOG_LEVELS[level].val ) { | ||
let dt = new Date().toISOString().replace('T', ' ') | ||
let ctx = _getContextString() | ||
let label = LOG_LEVELS[level].label | ||
let color = LOG_LEVELS[level].color | ||
let message:any | ||
if(typeof process !== 'undefined' && process.env['STRUCTURED_LOGGING']){ | ||
message = {} | ||
//console.log(args) | ||
let tag = args[0] | ||
let param = args[1] | ||
let value = args[2] | ||
if(typeof(args) === 'object'){ | ||
message.loggerdog = true | ||
message.label = label | ||
message.param = param | ||
message.value = value | ||
message.ctx = ctx | ||
message.dt = dt | ||
message.tag = tag.toString() | ||
message.raw = args.toString() | ||
} else { | ||
message.raw = args | ||
} | ||
console.log('%c ' + dt, color, label, ctx, message) | ||
}else{ | ||
console.log('%c ' + dt, color, label, ctx, ...args) | ||
_log(level: string, ...args: any[]) { | ||
if (this._level >= LOG_LEVELS[level].val) { | ||
const dt = new Date().toISOString().replace('T', ' '); | ||
const ctx = _getContextString(); | ||
const label = LOG_LEVELS[level].label; | ||
const color = LOG_LEVELS[level].color; | ||
const message = { | ||
loggerdog: true, | ||
label, | ||
param: args[1], | ||
value: args[2], | ||
ctx, | ||
dt, | ||
tag: args[0].toString(), | ||
raw: args.toString(), | ||
} | ||
console.log('%c ' + dt, color, label, ctx, message); | ||
} | ||
@@ -158,4 +67,4 @@ } | ||
module.exports = function() { | ||
return new Logger() | ||
export function loggerFactory() { | ||
return new Logger(); | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No License Found
License(Experimental) License information could not be found.
Found 1 instance in 1 package
Copyleft License
License(Experimental) Copyleft license information was found.
Found 1 instance in 1 package
Non-permissive License
License(Experimental) A license not known to be considered permissive was found.
Found 1 instance in 1 package
1
100
6154
6
160
1