@logship/logger 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # @logship/logger
2
2
 
3
- Logger SDK: send logs to the ingestion API with buffer, batch, and retry.
3
+ Send logs to the Logger ingestion API with buffer, batch, and retry.
4
+
5
+ **[Website](https://logship-logger.vercel.app)** · **[Docs](https://logship-logger.vercel.app/docs/getting-started)** · **[Buy me a coffee](https://www.buymeacoffee.com/anytechie)** ☕
6
+
7
+ ## Requirements
8
+
9
+ - Node.js **>= 18**
4
10
 
5
11
  ## Install
6
12
 
@@ -8,35 +14,96 @@ Logger SDK: send logs to the ingestion API with buffer, batch, and retry.
8
14
  npm install @logship/logger
9
15
  ```
10
16
 
11
- ## Usage
17
+ ## Quick start
12
18
 
13
19
  ```ts
14
20
  import { init } from '@logship/logger';
15
21
 
16
22
  const logger = init({
17
- apiKey: process.env.LOGGER_API_KEY,
23
+ apiKey: process.env.LOGGER_API_KEY!,
18
24
  minLevel: 'info',
19
- defaultMetadata: { service: 'api', version: '1.0' },
25
+ defaultMetadata: { service: 'api' },
20
26
  });
21
27
 
22
- logger.info('User signed in', { userId: 123 });
23
- logger.error('Payment failed', { orderId: 'ord_abc' });
28
+ logger.info('Server started');
29
+ logger.error('Payment failed', { orderId: 'ord_123' });
24
30
  ```
25
31
 
26
- ## Config
32
+ ## Configuration
33
+
34
+ | Option | Type | Default | Description |
35
+ |--------|------|---------|-------------|
36
+ | **apiKey** | string | — | **Required** for default HTTP transport. From dashboard API Keys. |
37
+ | **endpoint** | string | `process.env.LOGGER_API_URL` or `http://localhost:3000` | Ingestion API base URL. |
38
+ | **minLevel** | `'debug' \| 'info' \| 'warn' \| 'error'` | `'debug'` | Events below this level are dropped. |
39
+ | **minLevelByEnv** | `Record<string, LogLevel>` | — | Override minLevel by environment name. |
40
+ | **sampleRate** | number (0–1) | 1 | Global sampling; 1 = keep all. |
41
+ | **sampleRateByLevel** | `Partial<Record<LogLevel, number>>` | — | Per-level sampling; error/warn default to 1. |
42
+ | **defaultMetadata** | `Record<string, unknown>` | — | Merged into every event. |
43
+ | **env** | string | — | Environment name (e.g. `'production'`) for minLevelByEnv. |
44
+ | **batchSize** | number | 50 | Max events per batch. |
45
+ | **flushIntervalMs** | number | 5000 | Auto-flush interval in ms; 0 = disabled. |
46
+ | **transports** | `Transport[]` | HTTP when apiKey set | Custom transports; default is HTTP to ingestion API. |
47
+
48
+ **API reference:** For full API reference see the [docs site](https://logship-logger.vercel.app/docs/getting-started) (Getting started, SDK).
49
+
50
+ ## Support
51
+
52
+ If this package helps you, consider **[buying me a coffee](https://www.buymeacoffee.com/anytechie)** ☕ — it helps keep the project going.
53
+
54
+ ## Step-by-step usage
55
+
56
+ 1. **Get an API key** – Dashboard → API Keys → Create API key. Select project, choose Live or Sandbox, copy the key (shown only once).
57
+ 2. **Set environment variables** – `LOGGER_API_KEY` (required). Optionally `LOGGER_API_URL` for the ingestion API base URL.
58
+ 3. **Init and log** – Call `init({ apiKey })` and use `logger.info()`, `logger.error()`, etc. Events are buffered and sent in batches.
59
+ 4. **View logs** – Dashboard → Logs; select project and environment. Logs appear after flush (buffer or interval).
60
+ 5. **Optional** – Configure `minLevel`, `defaultMetadata`, `env`, etc. Call `logger.flush()` before process exit to drain the buffer.
61
+
62
+ ## Examples
63
+
64
+ ### Minimal (Node)
65
+
66
+ ```ts
67
+ import { init } from '@logship/logger';
68
+
69
+ const logger = init({
70
+ apiKey: process.env.LOGGER_API_KEY!,
71
+ minLevel: 'info',
72
+ defaultMetadata: { service: 'api' },
73
+ });
74
+
75
+ logger.info('Server started');
76
+ logger.error('Something failed', { code: 500 });
77
+ ```
78
+
79
+ ### Flush on exit
80
+
81
+ ```ts
82
+ const logger = init({ apiKey: process.env.LOGGER_API_KEY! });
83
+
84
+ process.on('beforeExit', async () => {
85
+ await logger.flush();
86
+ });
87
+ ```
88
+
89
+ ### Runnable example
90
+
91
+ See [examples/test-backend](../../examples/test-backend) in the repo for a full runnable Node app using `@logship/logger`.
92
+
93
+ ## Error handling
94
+
95
+ - **Missing apiKey:** `init()` throws. Provide a valid API key or use custom `transports` only.
96
+ - **Network/API errors on send:** Transports send in batches; one transport failure does not block others. Failed events may be dropped after send; for critical logs use a fallback (e.g. console or file) or handle errors in your app.
97
+ - **Invalid config:** `apiKey` is required when using the default HTTP transport. Invalid `minLevel` or options may throw or be ignored depending on validation.
98
+
99
+ **What if the API is down?** The SDK buffers and flushes on an interval; failed sends are best-effort. Call `logger.flush()` before process exit to drain the buffer. For critical logs, consider a custom transport (e.g. write to file) or handle errors in your application.
27
100
 
28
- - **apiKey** (required): API key from the dashboard.
29
- - **minLevel**: `'debug' | 'info' | 'warn' | 'error'` – events below are dropped. Default `'debug'`.
30
- - **minLevelByEnv**: e.g. `{ production: 'info' }` – overrides minLevel when `env` matches.
31
- - **sampleRate**: 0–1; 1 = keep all. Error/warn are always kept unless overridden by sampleRateByLevel.
32
- - **sampleRateByLevel**: e.g. `{ info: 0.1 }` – per-level sampling.
33
- - **defaultMetadata**: Merged into every log's metadata.
34
- - **env**: Environment name (e.g. `'production'`) for minLevelByEnv.
101
+ **Missing logs?** Check `minLevel`, `sampleRate`, and `env`; ensure dashboard project and environment match; verify API key (Live vs Sandbox) and network/API status.
35
102
 
36
103
  ## Other languages
37
104
 
38
- - **Go:** Use the same ingestion API (`POST /v1/logs` with `Authorization: Bearer <api_key>`). Request body: `{"events":[{...}]}`. See [LOGGER_GO_CLIENT.md](../../documentation/LOGGER_GO_CLIENT.md) in the repo for install (none for REST), request shape, and a minimal Go example. Published as **@logship/logger** on npm.
105
+ - **Go:** Use the same ingestion API (`POST /v1/logs` with `Authorization: Bearer <api_key>`). Request body: `{"events":[...]}`. See [LOGGER_GO_CLIENT.md](../../documentation/LOGGER_GO_CLIENT.md) and [examples/go](../../examples/go) in the repo.
39
106
 
40
- ## Sprint 1
107
+ ## License
41
108
 
42
- - No flush to API yet; events are buffered in memory. Flush will be wired in a later sprint.
109
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvF,QAAA,MAAM,MAAM,EAAE,QAAQ,EAAuC,CAAC;AAgC9D,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,mEAAmE;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAmCD,wBAAgB,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAqCzD;AA4BD,iDAAiD;AACjD,wBAAgB,SAAS,IAAI,SAAS,QAAQ,EAAE,CAE/C;AAED,+DAA+D;AAC/D,wBAAgB,KAAK,IAAI,IAAI,CAO5B;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvF,QAAA,MAAM,MAAM,EAAE,QAAQ,EAAuC,CAAC;AAgC9D,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,mEAAmE;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAwCD,wBAAgB,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAqCzD;AA4BD,iDAAiD;AACjD,wBAAgB,SAAS,IAAI,SAAS,QAAQ,EAAE,CAE/C;AAED,+DAA+D;AAC/D,wBAAgB,KAAK,IAAI,IAAI,CAO5B;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC"}
@@ -7,6 +7,7 @@ exports.reset = reset;
7
7
  const types_1 = require("./types");
8
8
  Object.defineProperty(exports, "LEVEL_ORDER", { enumerable: true, get: function () { return types_1.LEVEL_ORDER; } });
9
9
  const noop_1 = require("./transports/noop");
10
+ const http_1 = require("./transports/http");
10
11
  const LEVELS = ['debug', 'info', 'warn', 'error'];
11
12
  exports.LEVELS = LEVELS;
12
13
  const DEFAULT_BATCH_SIZE = 50;
@@ -41,6 +42,11 @@ function getEffectiveTransports(config) {
41
42
  const t = config.transports;
42
43
  if (t && t.length > 0)
43
44
  return t;
45
+ const apiKey = config.apiKey?.trim();
46
+ if (apiKey) {
47
+ const endpoint = config.endpoint ?? (typeof process !== 'undefined' ? process.env?.LOGGER_API_URL?.replace(/\/$/, '') : undefined) ?? 'http://localhost:3000';
48
+ return [(0, http_1.createHttpTransport)({ apiKey, endpoint })];
49
+ }
44
50
  return [noop_1.noopTransport];
45
51
  }
46
52
  function getBatchSize(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { init, getBuffer, reset, LEVEL_ORDER, LEVELS, type LoggerInstance } from './client';
2
2
  export type { LogEvent, LogLevel, LoggerConfig, Transport } from './types';
3
3
  export { noopTransport } from './transports/noop';
4
+ export { createHttpTransport } from './transports/http';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5F,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5F,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.noopTransport = exports.LEVELS = exports.LEVEL_ORDER = exports.reset = exports.getBuffer = exports.init = void 0;
3
+ exports.createHttpTransport = exports.noopTransport = exports.LEVELS = exports.LEVEL_ORDER = exports.reset = exports.getBuffer = exports.init = void 0;
4
4
  var client_1 = require("./client");
5
5
  Object.defineProperty(exports, "init", { enumerable: true, get: function () { return client_1.init; } });
6
6
  Object.defineProperty(exports, "getBuffer", { enumerable: true, get: function () { return client_1.getBuffer; } });
@@ -9,4 +9,6 @@ Object.defineProperty(exports, "LEVEL_ORDER", { enumerable: true, get: function
9
9
  Object.defineProperty(exports, "LEVELS", { enumerable: true, get: function () { return client_1.LEVELS; } });
10
10
  var noop_1 = require("./transports/noop");
11
11
  Object.defineProperty(exports, "noopTransport", { enumerable: true, get: function () { return noop_1.noopTransport; } });
12
+ var http_1 = require("./transports/http");
13
+ Object.defineProperty(exports, "createHttpTransport", { enumerable: true, get: function () { return http_1.createHttpTransport; } });
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA4F;AAAnF,8FAAA,IAAI,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,+FAAA,KAAK,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAEpD,0CAAkD;AAAzC,qGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA4F;AAAnF,8FAAA,IAAI,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,+FAAA,KAAK,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAEpD,0CAAkD;AAAzC,qGAAA,aAAa,OAAA;AACtB,0CAAwD;AAA/C,2GAAA,mBAAmB,OAAA"}
@@ -0,0 +1,11 @@
1
+ import type { Transport } from '../types';
2
+ export interface HttpTransportOptions {
3
+ apiKey: string;
4
+ endpoint?: string;
5
+ }
6
+ /**
7
+ * Transport that POSTs batches to the Logger ingestion API (POST /v1/logs).
8
+ * Retries on 5xx and 429; does not retry 4xx.
9
+ */
10
+ export declare function createHttpTransport(options: HttpTransportOptions): Transport;
11
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,UAAU,CAAC;AAiBpD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAoC5E"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createHttpTransport = createHttpTransport;
4
+ const DEFAULT_ENDPOINT = typeof process !== 'undefined' && process.env?.LOGGER_API_URL
5
+ ? process.env.LOGGER_API_URL.replace(/\/$/, '')
6
+ : 'http://localhost:3000';
7
+ function toApiEvent(evt) {
8
+ return {
9
+ message: evt.message,
10
+ level: evt.level,
11
+ timestamp: evt.timestamp,
12
+ ...(evt.metadata && Object.keys(evt.metadata).length > 0 && { metadata: evt.metadata }),
13
+ ...(evt.env && { env: evt.env }),
14
+ ...(evt.source && { source: evt.source }),
15
+ };
16
+ }
17
+ /**
18
+ * Transport that POSTs batches to the Logger ingestion API (POST /v1/logs).
19
+ * Retries on 5xx and 429; does not retry 4xx.
20
+ */
21
+ function createHttpTransport(options) {
22
+ const { apiKey, endpoint = DEFAULT_ENDPOINT } = options;
23
+ const baseUrl = endpoint.replace(/\/$/, '');
24
+ const url = `${baseUrl}/v1/logs`;
25
+ return {
26
+ name: 'http',
27
+ async send(events) {
28
+ if (events.length === 0)
29
+ return;
30
+ const body = { events: events.map(toApiEvent) };
31
+ const res = await fetch(url, {
32
+ method: 'POST',
33
+ headers: {
34
+ 'Content-Type': 'application/json',
35
+ Authorization: `Bearer ${apiKey}`,
36
+ },
37
+ body: JSON.stringify(body),
38
+ });
39
+ if (res.ok)
40
+ return; // 202 Accepted
41
+ if (res.status === 429) {
42
+ const retryAfterHeader = res.headers.get('Retry-After');
43
+ const retryAfterSec = retryAfterHeader ? parseInt(retryAfterHeader, 10) : NaN;
44
+ const sec = Number.isFinite(retryAfterSec) && retryAfterSec > 0 ? retryAfterSec : 0;
45
+ if (sec > 0) {
46
+ await new Promise((r) => setTimeout(r, sec * 1000));
47
+ }
48
+ const message = sec > 0 ? `Too many requests; retry after ${sec} seconds.` : 'Too many requests; retry after backoff.';
49
+ throw new Error(message);
50
+ }
51
+ if (res.status >= 500) {
52
+ throw new Error(`Logger HTTP transport: server error ${res.status}. Retry later.`);
53
+ }
54
+ const text = await res.text();
55
+ throw new Error(`Logger HTTP transport: ${res.status} ${text || res.statusText}`);
56
+ },
57
+ };
58
+ }
59
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":";;AA0BA,kDAoCC;AA5DD,MAAM,gBAAgB,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc;IACpF,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAC/C,CAAC,CAAC,uBAAuB,CAAC;AAE5B,SAAS,UAAU,CAAC,GAAa;IAC/B,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvF,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAOD;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,GAAG,OAAO,UAAU,CAAC;IAEjC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,CAAC,IAAI,CAAC,MAAkB;YAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAChC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,CAAC,eAAe;YACnC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACxD,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpF,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;oBACZ,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC,GAAG,WAAW,CAAC,CAAC,CAAC,yCAAyC,CAAC;gBACvH,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,MAAM,gBAAgB,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -19,6 +19,8 @@ export interface Transport {
19
19
  }
20
20
  export interface LoggerConfig {
21
21
  apiKey: string;
22
+ /** Ingestion API base URL (e.g. https://api.example.com). Default: process.env.LOGGER_API_URL or http://localhost:3000 */
23
+ endpoint?: string;
22
24
  /** Minimum level to send; events below are dropped. Default 'debug' */
23
25
  minLevel?: LogLevel;
24
26
  /** Per-environment min level, e.g. { production: 'info' } */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKhD,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKhD,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,0HAA0H;IAC1H,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@logship/logger",
3
- "version": "0.1.0",
4
- "description": "Logger SDK: send logs to ingestion API with buffer, batch, retry",
3
+ "version": "0.1.1",
4
+ "description": "Logger SDK: send logs to ingestion API with buffer, batch, retry. One SDK, one API—ship logs without the ops.",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
7
7
  "scripts": {
@@ -20,10 +20,24 @@
20
20
  "keywords": [
21
21
  "logger",
22
22
  "logging",
23
- "sdk"
23
+ "sdk",
24
+ "logship",
25
+ "ingestion"
24
26
  ],
25
27
  "author": "",
26
28
  "license": "MIT",
29
+ "homepage": "https://logship-logger.vercel.app",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/AnyTechieMaster/logger.git"
33
+ },
34
+ "bugs": {
35
+ "url": "https://github.com/AnyTechieMaster/logger/issues"
36
+ },
37
+ "funding": {
38
+ "type": "buymeacoffee",
39
+ "url": "https://www.buymeacoffee.com/anytechie"
40
+ },
27
41
  "publishConfig": {
28
42
  "access": "public"
29
43
  },