A lightweight WebSocket-based logging service that aggregates and displays logs from multiple remote applications in real-time with beautiful console formatting.
Note: This is a development tool intended for logging and debugging purposes. For production logging, consider using established logging services with authentication and data persistence.
npm install -g remote-logger-server
# or
pnpm add -g remote-logger-server
# or
yarn global add remote-logger-server# Using default port (4455)
remote-logger-server
# Using custom port
PORT=8080 remote-logger-servergit clone https://github.com/khalidsheet/remote-logger-server.git
cd remote-logger-server
pnpm install
pnpm buildpnpm start
# With custom port
PORT=8080 pnpm startThe server will start and display:
12:00:00 PM INFO Remote Logger service started on port 4455
For frontend applications (React, Vue, Angular, etc.), please use the dedicated client package. The client package provides a simplified API and is optimized for browser environments.
Install the client package:
npm install remote-logger-client
# or
pnpm add remote-logger-client
# or
yarn add remote-logger-clientNote: The examples below show raw WebSocket usage for backend/Node.js applications. For frontend applications, use the client package instead.
Node.js Example:
import WebSocket from "ws";
const ws = new WebSocket("ws://localhost:4455");
ws.on("open", () => {
ws.send(
JSON.stringify({
app: "MyApp",
message: ["User logged in:", { userId: 123 }],
caller: "src/auth/login.js:45",
})
);
});Browser Example:
const ws = new WebSocket("ws://localhost:4455");
ws.onopen = () => {
ws.send(
JSON.stringify({
app: "Frontend",
message: ["Button clicked:", buttonId],
caller: "components/Button.tsx:12",
})
);
};Logs are displayed with the following format:
[TIME] [APP_NAME] [FILE] message content
Example:
12:34:56 PM [MyApp] [login.js] User logged in: { userId: 123 }
| Environment Variable | Default | Description |
|---|---|---|
PORT |
4455 |
WebSocket server port |
pnpm buildBuilds the project using tsdown and outputs to the dist/ directory in both CommonJS and ESM formats.
remote-logger-server/
├── src/
│ └── main.ts # Main server implementation
├── dist/ # Built files
├── package.json
├── tsconfig.json
└── tsdown.config.ts # Build configuration
- Node.js >= 20.0.0
- ws - WebSocket server implementation
- chalk - Terminal string styling
MIT
Khalid M. Sheet (khalid.m.sheet@gmail.com)
Happy Hacking!