1.0.2 • Published 2 years ago

nv-remote-log v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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