nv-remote-log
v1.0.2
Published
nv-remote-log ===================== - insert error into a remote-pg-database
Downloads
8
Readme
nv-remote-log
- insert error into a remote-pg-database
install
- npm install nv-remote-log
usage
const {
DFLT_CFG,
creat_rlog
} = require("nv-remote-log")
> DFLT_CFG()
{
dbname: 'jsonpg',
server: '127.0.0.1',
tbl: 'app_log',
app: '',
zone: '+0800',
signed_keys: [ 'code', 'name', 'message' ]
}
>
init
//creat_rlog(db=undefined,cfg=DFLT_CFG())
var rlog = await creat_rlog()
total count
/*
> await rlog.count(filter=null)
{ err: null, rslt: 58 }
>
*/
log
function tst() {
try {
throw(new Error("some-error"))
} catch(err) {
rlog.rlog(err) //----->
}
}
var filter = ['eq',[{N:'message'},{$:'some-error'}]]
await rlog.slct(filter)
/*
[
{
logid: '1G4e3bWjSGg2ToXRArM22yfubZVUZZY9yWJWGHx9p_qrSj1oMpBQQYH2uvqYwyMM',
app: '',
type: 'error',
date: '2022-02-05 12:54:04.722',
code: '4294967296',
name: 'Error',
message: 'some-error',
stack: [
'Error: some-error',
' at tst (REPL57:3:9)',
' at REPL59:1:1',
' at Script.runInThisContext (node:vm:129:12)',
' at REPLServer.defaultEval (node:repl:562:29)',
' at bound (node:domain:421:15)',
' at REPLServer.runBound [as eval] (node:domain:432:12)',
' at REPLServer.onLine (node:repl:889:10)',
' at REPLServer.emit (node:events:402:35)',
' at REPLServer.emit (node:domain:475:12)',
' at REPLServer.Interface._onLine (node:readline:487:10)'
],
signed_keys: [ 'code', 'name', 'message' ],
sign: '5b88552ad928b74a852d20b6e869883154954290',
y: '2022',
m: '2',
d: '5',
h: '12',
min: '54',
s: '4',
ms: '723',
ts: '1644036844',
mts: '1644036844723',
zone: '+0800',
soffset: '28800',
msoffset: '28800000',
utc_wd: 'Saturday',
lcl_wd: 'Saturday',
extra: {},
created_at: '1644036844723',
update_at: '1644036844723'
}
]
*/
slct
// rlog.slct(filter=null) : Promise
all
var all = await rlog.slct()
/*
> all.map(row=>[row.type,row.message,row.date])
[
[ 'error', 'some-error', '2022-02-05 12:54:04.722' ],
[ 'error', 'abc', '2022-02-04 23:41:32.126' ],
[ 'error', 'abc', '2022-02-04 23:41:32.104' ],
[ 'error', 'abc', '2022-02-04 23:40:02.039' ],
[ 'error', 'abc', '2022-02-04 23:40:02.016' ],
[ 'error', 'abc', '2022-02-04 23:37:41.918' ],
[ 'error', 'abc', '2022-02-04 23:37:41.895' ],
.......
]
*/
before
var befores = await rlog.slct_before('2022-02-04 19:59:18.078')
/*
> befores.map(row=>[row.message,row.date])
[
[ 'abc', '2022-02-04 19:59:18.078' ], //------------------------------------------------
[ 'abc', '2022-02-04 19:59:18.056' ],
[ 'abc', '2022-02-04 19:55:15.001' ],
[ 'abc', '2022-02-04 19:55:14.980' ],
[ 'abc', '2022-02-04 19:11:38.301' ],
[ 'abc', '2022-02-04 19:11:38.279' ],
[ 'def', '2022-02-04 17:49:32.424' ],
[ 'def', '2022-02-04 17:49:32.405' ],
[ 'abc', '2022-02-04 17:29:20.706' ],
[ 'abc', '2022-02-04 17:29:20.687' ],
[ 'xyz', '2022-02-04 17:12:31.764' ],
[ 'xyz', '2022-02-04 17:12:24.110' ],
[ 'xyz', '2022-02-04 17:10:03.997' ],
[ 'xyz', '2022-02-04 17:09:56.976' ],
[ 'xyz', '2022-02-04 17:03:42.076' ],
[ 'xyz', '2022-02-04 17:03:30.397' ]
]
>
*/
after
var afters = await rlog.slct_after('2022-02-04 23:33:53.664')
/*
> afters.map(row=>[row.message,row.date])
[
[ 'some-error', '2022-02-05 12:54:04.722' ],
[ 'abc', '2022-02-04 23:41:32.126' ],
[ 'abc', '2022-02-04 23:41:32.104' ],
[ 'abc', '2022-02-04 23:40:02.039' ],
[ 'abc', '2022-02-04 23:40:02.016' ],
[ 'abc', '2022-02-04 23:37:41.918' ],
[ 'abc', '2022-02-04 23:37:41.895' ],
[ 'abc', '2022-02-04 23:35:47.715' ],
[ 'abc', '2022-02-04 23:35:47.691' ],
[ 'abc', '2022-02-04 23:33:53.687' ],
[ 'abc', '2022-02-04 23:33:53.664' ]
]
>
*/
between
var betweens = await rlog.slct_between('2022-02-04 17:03:30.397','2022-02-04 17:12:31.764')
/*
> betweens.map(row=>[row.message,row.date])
[
[ 'xyz', '2022-02-04 17:12:31.764' ], //------------------------------
[ 'xyz', '2022-02-04 17:12:24.110' ],
[ 'xyz', '2022-02-04 17:10:03.997' ],
[ 'xyz', '2022-02-04 17:09:56.976' ],
[ 'xyz', '2022-02-04 17:03:42.076' ],
[ 'xyz', '2022-02-04 17:03:30.397' ] //-------------------------
]
>
*/
with filter
var filter = ['eq',[{N:'message'},{$:'xyz'}]]
var rows = await rlog.slct(filter)
/*
> rows.map(row=>[row.message,row.date])
[
[ 'xyz', '2022-02-04 17:12:31.764' ],
[ 'xyz', '2022-02-04 17:12:24.110' ],
[ 'xyz', '2022-02-04 17:10:03.997' ],
[ 'xyz', '2022-02-04 17:09:56.976' ],
[ 'xyz', '2022-02-04 17:03:42.076' ],
[ 'xyz', '2022-02-04 17:03:30.397' ]
]
>
*/
generator mode
var filter = [
'or', [
'eq',[{N:'message'},{$:'xyz'}],
'eq',[{N:'message'},{$:'def'}],
]
]
//function(filter=null,limit=10,max_rows=Infinity)
var agen = rlog.slct_gen(filter,3)
var ag = agen();
/*
var batch = ((await ag.next()).value);
batch.map(row=>row.message)
> batch.map(row=>row.message)
[ 'def', 'def', 'xyz' ]
>
> var batch = ((await ag.next()).value);
undefined
> batch.map(row=>row.message)
[ 'xyz', 'xyz', 'xyz' ]
> var batch = ((await ag.next()).value);
undefined
> batch.map(row=>row.message)
[ 'xyz', 'xyz' ]
> var batch = ((await ag.next()).value);
undefined
> batch
undefined
>
*/
delete
await rlog.del_before('2022-02-04 17:29:20.706')
/*
> await rlog.slct_before('2022-02-04 17:29:20.706')
[]
>
*/
await rlog.del_between('2022-02-04 22:06:14.440','2022-02-04 22:26:15.786')
/*
> await rlog.slct_between('2022-02-04 22:06:14.440','2022-02-04 22:26:15.786')
[]
>
*/
var filter = ['eq',[{N:'message'},{$:'abc'}]]
await rlog.del(filter)
/*
var all = await rlog.slct()
> all.map(r=>[r.message,r.date])
[
[ 'some-error', '2022-02-05 12:54:04.722' ],
[ 'def', '2022-02-04 17:49:32.424' ],
[ 'def', '2022-02-04 17:49:32.405' ]
]
>
*/
METHODS
/*
rlog.cfg_ rlog.count rlog.db_
rlog.del rlog.del_after rlog.del_before rlog.del_between
rlog.rlog rlog.slct rlog.slct_after rlog.slct_before
rlog.slct_between rlog.slct_gen rlog.tbl_
*/
LICENSE
- ISC