Comparing version 0.5.0 to 0.6.0
@@ -0,1 +1,4 @@ | ||
// import { LOGEL_RENDER } from "."; | ||
// import { renderRootObject } from "."; | ||
export interface Log{ | ||
@@ -15,8 +18,12 @@ readonly logel:Logel; | ||
type Renderer = (data: any) => any; | ||
interface Context { | ||
seen: Set<unknown>; | ||
sym: Symbol; | ||
} | ||
export class Logel{ | ||
type Renderer = (data: unknown, ctx: Context) => unknown; | ||
export class Logel { | ||
static make(): Logel; | ||
setRenderers(rends: {[key: string]: Renderer }): Logel; | ||
setDefaultRenderers(): Logel; | ||
@@ -28,1 +35,6 @@ | ||
} | ||
export const setLogelRender: <T>(v: unknown, sym: Symbol, fn: (v:T, ctx: Context) => unknown) => unknown; | ||
export const renderRootObject: (v: unknown, sym: Symbol) => unknown; | ||
export const LOGEL_RENDER: Symbol; | ||
export const LOGEL_FINAL: Symbol; |
18
index.js
@@ -0,4 +1,20 @@ | ||
const { | ||
Logel, | ||
} = require('./lib/logel'); | ||
const { | ||
// renderValue, | ||
renderRootObject, | ||
LOGEL_RENDER, | ||
LOGEL_FINAL, | ||
setLogelRender, | ||
} = require('./lib/render'); | ||
module.exports = { | ||
Logel: require('./lib/logel'), | ||
Logel, | ||
// renderValue, | ||
renderRootObject, | ||
LOGEL_RENDER, | ||
LOGEL_FINAL, | ||
setLogelRender, | ||
Log: require('./lib/log'), | ||
}; |
const Log = require('./log'); | ||
const Url = require('url') | ||
const QueryString = require('querystring') | ||
const Url = require('node:url') | ||
const QueryString = require('node:querystring') | ||
const LEVELS = require('./levels'); | ||
const { | ||
setLogelRender, | ||
renderValue, | ||
renderRootObject, | ||
LOGEL_RENDER, | ||
LOGEL_FINAL, | ||
} = require('./render'); | ||
@@ -19,5 +26,9 @@ const DEFAULT = { | ||
class Logel{ | ||
constructor(){ | ||
constructor(renderSymbol){ | ||
this.renderSymbol = renderSymbol ?? LOGEL_RENDER; | ||
} | ||
// setDefaultRenderers() { | ||
// } | ||
configure(cfg){ | ||
@@ -63,26 +74,17 @@ this.cfg = cfg; | ||
setRenderers(obj){ | ||
for(let k of Object.keys(obj)) this.renderers[k] = obj[k]; | ||
setDefaultRenderers(){ | ||
for(let [Class, fn] of require('./default-renderers').renderers.entries()) { | ||
setLogelRender(Class, this.renderSymbol, fn); | ||
} | ||
return this; | ||
} | ||
setDefaultRenderers(){ | ||
return this.setRenderers(require('./std-renderers').renderers); | ||
} | ||
write(log, level, message, ctx){ | ||
if(LEVELS[level] < this.minLevelNum) return; | ||
let time = Date.now(); | ||
let outputs = this.outputs; | ||
if(ctx != null){ | ||
let keys = Object.keys(ctx); | ||
for(let k of keys){ | ||
let rend = this.renderers[k]; | ||
if(rend !== undefined) ctx[k] = rend(ctx[k]); | ||
} | ||
} | ||
let renderedCtx = renderRootObject(ctx, this.renderSymbol); | ||
for(let output of outputs){ | ||
output.write(time, LEVELS[level], log.tag, message, ctx); | ||
for(let output of this.outputs){ | ||
output.write(time, LEVELS[level], log.tag, message, renderedCtx); | ||
} | ||
@@ -117,7 +119,11 @@ } | ||
static make(){ | ||
return new Logel().configure(Logel.readCfg(process.env)); | ||
static make(sym = LOGEL_RENDER){ | ||
return new Logel(sym).configure(Logel.readCfg(process.env)); | ||
} | ||
} | ||
module.exports = Logel | ||
Logel.setRender = setLogelRender; | ||
module.exports = { | ||
Logel, | ||
} |
{ | ||
"name": "logel", | ||
"version": "0.5.0", | ||
"version": "0.6.0", | ||
"description": "Externally controlled logging subsystem", | ||
@@ -21,3 +21,3 @@ "bin": { | ||
"devDependencies": { | ||
"ava": "^3.5.0", | ||
"ava": "^5.2.0", | ||
"c8": "^7.7.3" | ||
@@ -24,0 +24,0 @@ }, |
29156
18
696