0.6.0 • Published 2 years ago

rootle v0.6.0

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

Rootle

Cross language structured log library.

Methods

NameParameters
Info(message)
Warn(message)
Error(message, downstream, stacktrace, code)

Transports

File transport, allows writting logs to file

const logger = new Rootle("ac12Cd-Aevd-12Grx-235f4", "billing-Lambda", undefined, new FileTransport({
    enable: true,
    filename: "logs",
    path: __dirname
}));

Log structure

FieldTypeRequired
idstringYes
applicationstringYes
timestampTimestampYes
messagestringYes
levelstringYes
eventstringNo
downstreamDownstreamNo
stacktracestringNo
code "exit code"intNo

Downstream structure

FieldTypeRequired
httpHttpNo
grpcGrpcNo

Http structure

FieldTypeRequired
methodstringNo
statusCodeHttpStatusCode(enum)No
urlstringNo
useragentstringNo
refererstringNo
payloadstringNo

Grpc structure

FieldTypeRequired
procedurestringNo
codeGrpcCodes(enum)No
servicestringNo
useragentstringNo
refererstringNo
payloadstringNo

Install and usage

  • install
npm i rootle
  • usage
const logger = new Rootle("ac12Cd-Aevd-12Grx-235f4", "billing-Lambda");

logger.info("Info, hello world!");
logger.warn("Warn, hello world!");

var json = {
    "foo": "bar"
};

logger.error("Error, hello world!", JSON.stringify(json), {
    http: {
        method: "GET",
        statusCode: HttpStatusCode.INTERNAL_SERVER_ERROR,
        url: "http://localhost:8080/invoice/123",
        useragent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
        referer: "http://localhost:8080/",
        payload: JSON.stringify(json)
    },
    grpc: {
        procedure: "GetInvoice",
        code:      GrpcCodes.INTERNAL,
        service:   "invoice",
        useragent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
        referer:   "http://localhost:8080/",
        payload: JSON.stringify(json)
    }
}, "billing/user", 0);

Output example

- Info: {"id":"ac12Cd-Aevd-12Grx-235f4","application":"invoice-lambda","timestamp":1660741987,"message":"Hello World","level":"INFO"}

- Warn: {"id":"ac12Cd-Aevd-12Grx-235f4","application":"invoice-lambda","timestamp":1660741987,"message":"Hello World","level":"WARN"}

- Error: 
{
   "id":"ac12Cd-Aevd-12Grx-235f4",
   "application":"invoice-lambda",
   "timestamp":1660910613,
   "message":"Hello World",
   "level":"ERROR",
   "event":"{\"foo\":\"bar\"}",
   "downstream":{
      "grpc":{
         "procedure":"GetInvoice",
         "code":13,
         "service":"invoice",
         "useragent":"\t/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
         "referer":"http://localhost:8080/",
         "payload":"{\"foo\":\"bar\"}"
      },
      "http":{
         "method":"GET",
         "status_code":500,
         "url":"http://localhost:8080/invoice/123",
         "useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
         "referer":"http://localhost:8080/",
         "payload":"{\"foo\":\"bar\"}"
      }
   },
   "stackTrace":"billing/user",
   "code":0
}
0.5.0

2 years ago

0.6.0

2 years ago

0.4.0

2 years ago

0.3.0

2 years ago

0.2.0

2 years ago

0.1.0

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago