An SDK for interacting with your logging service. It integrates seamlessly with Winston for structured logging and allows sending logs to your logging service with minimal setup.
- Easily integrate with your logging service.
- Supports API token-based authentication.
- Built-in support for Winston.
- Configurable
applicationId
for grouping logs by application. - Automatically sends logs to your backend endpoint.
Install the SDK using NPM:
npm install log-service-sdk
Initialize the logger with your applicationId
, apiToken
, and optionally the endpoint URL:
const { initializeLogger } = require("log-service-sdk");
// Initialize the logger
const logger = initializeLogger(
"my-app-id",
"<your-api-token>",
"https://your-logging-service.com/logs"
);
Use the logger to log messages at various levels (info
, error
, warn
, etc.):
// Log an informational message
logger.info("User logged in", { userId: "12345" });
// Log an error message
logger.error("An error occurred", { error: "Something went wrong" });
-
applicationId
: A unique identifier for your application (string, required). -
apiToken
: API token for authenticating with the logging service (string, required). -
endpoint
: URL of the logging service endpoint (string, optional, defaults tohttp://localhost:5000/logs
).
Returns:
- A configured Winston logger instance.
const { initializeLogger } = require("log-service-sdk");
const logger = initializeLogger("my-app", "your-api-token");
// Log various messages
logger.info("This is an info log");
logger.warn("This is a warning");
logger.error("This is an error", { additionalData: "value" });
logger.info("Overriding applicationId", { applicationId: "other-app" });
The SDK handles errors gracefully when sending logs:
- Logs the error to the console using
console.error
. - Ensures the logging flow is not interrupted even if the backend is unreachable.
git clone https://github.com/<your-username>/log-service-sdk.git
cd log-service-sdk
npm install
npm test
We welcome contributions! Feel free to submit issues and pull requests to improve the SDK.
This project is licensed under the MIT License. See the LICENSE file for details.