bright-logger-expressjs ✏️⚠️
here
This is v2, for v1 implementation guide goLogs incoming requests and generates a Trace Id (GUID) res.locals.traceId
if the x-correlation-id
property is not set in the request header.
npm i bright-logger-expressjs
Usage
If logging authenticated requests the use of this library requires the usage of bright-auth-expressjs.
As the logger package overrides the res.end()
method, there is no need to call this in your code. The logger will handle ending the transaction.
Log requests from all routes on your authenticated API
const app = ;const logger = CONNECTION_STRING: "connection_string" CONNECTION_NAME: "connection_name" ENVIRONMENT: "LOCAL" SOURCE_APP: "TestApp";const auth = API_ENDPOINT: "https://sandbox-api.brighthr.com"; appapp app; app;
Log requests from specific routes
const app = ;const auth = API_ENDPOINT: "https://sandbox-api.brighthr.com";const logger = CONNECTION_STRING: "connection_string" CONNECTION_NAME: "connection_name" ENVIRONMENT: "LOCAL" SOURCE_APP: "TestApp"; app; app;
Log requests from all routes on your unauthenticated API
const app = ;const logger = CONNECTION_STRING: "connection_string" CONNECTION_NAME: "connection_name" ENVIRONMENT: "LOCAL" SOURCE_APP: "TestApp"; app app; app;
Logged object example:
"DeployedTo": "LOCAL" "MachineName": "localhost" "UserGuid": "1f2ac30b-4000-4c87-bcb2-254b9df3cbbe" "TraceId": "157ef47b-bfba-4eb5-a693-0cfec6a78a48" "http": "ElapsedMS": 3292 "IP": "::1" "Headers": "BrightClient": "blip_ios" "User-Agent": "PostmanRuntime/7.22.0" "Host": "localhost" "StatusCode": 200 "Received": "2020-02-11T12:09:08.246Z" "Method": "GET" "Path": "/" "Region": "UK" "SessionId": "9g408c89-85b5-47c9-1243-08ab904b3746" "Source": "presence_api" "CompanyGuid": "8f408c89-85b5-47c9-822d-08ab904b3615"
Log errors
const app = ;const logger = CONNECTION_STRING: "connection_string" CONNECTION_NAME: "connection_name" ENVIRONMENT: "LOCAL" SOURCE_APP: "TestApp"; app app; app; app;
Development
npm run dev
will spin up a local server on port 9999
and restart when you save any file.
Deployment to npm
Deployment is managed using semantic-release. This means you must be careful about the commit message format. This link provides examples - if you do not conform to this circle will build your commit but not push a new version to npm and github and then you'll be sad 😕. Turns out we're using the Angular commit format...