@vibesdotdev/logging 0.0.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 +80 -0
- package/SPEC.md +65 -0
- package/dist/audit/audit.descriptor.d.ts +11 -0
- package/dist/audit/audit.descriptor.d.ts.map +1 -0
- package/dist/audit/audit.descriptor.js +40 -0
- package/dist/audit/audit.descriptor.js.map +1 -0
- package/dist/audit/audit.storage.schema.d.ts +79 -0
- package/dist/audit/audit.storage.schema.d.ts.map +1 -0
- package/dist/audit/audit.storage.schema.js +33 -0
- package/dist/audit/audit.storage.schema.js.map +1 -0
- package/dist/audit/index.d.ts +2 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +2 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/cli/logs.descriptor.d.ts +9 -0
- package/dist/cli/logs.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.descriptor.js +16 -0
- package/dist/cli/logs.descriptor.js.map +1 -0
- package/dist/cli/logs.list.descriptor.d.ts +9 -0
- package/dist/cli/logs.list.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.list.descriptor.js +23 -0
- package/dist/cli/logs.list.descriptor.js.map +1 -0
- package/dist/cli/logs.list.impl.d.ts +13 -0
- package/dist/cli/logs.list.impl.d.ts.map +1 -0
- package/dist/cli/logs.list.impl.js +81 -0
- package/dist/cli/logs.list.impl.js.map +1 -0
- package/dist/cli/logs.rotate.descriptor.d.ts +9 -0
- package/dist/cli/logs.rotate.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.rotate.descriptor.js +34 -0
- package/dist/cli/logs.rotate.descriptor.js.map +1 -0
- package/dist/cli/logs.rotate.impl.d.ts +17 -0
- package/dist/cli/logs.rotate.impl.d.ts.map +1 -0
- package/dist/cli/logs.rotate.impl.js +48 -0
- package/dist/cli/logs.rotate.impl.js.map +1 -0
- package/dist/cli/logs.search.descriptor.d.ts +9 -0
- package/dist/cli/logs.search.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.search.descriptor.js +55 -0
- package/dist/cli/logs.search.descriptor.js.map +1 -0
- package/dist/cli/logs.search.impl.d.ts +22 -0
- package/dist/cli/logs.search.impl.d.ts.map +1 -0
- package/dist/cli/logs.search.impl.js +145 -0
- package/dist/cli/logs.search.impl.js.map +1 -0
- package/dist/cli/logs.tail.descriptor.d.ts +9 -0
- package/dist/cli/logs.tail.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.tail.descriptor.js +43 -0
- package/dist/cli/logs.tail.descriptor.js.map +1 -0
- package/dist/cli/logs.tail.impl.d.ts +19 -0
- package/dist/cli/logs.tail.impl.d.ts.map +1 -0
- package/dist/cli/logs.tail.impl.js +78 -0
- package/dist/cli/logs.tail.impl.js.map +1 -0
- package/dist/cli/logs.view.descriptor.d.ts +9 -0
- package/dist/cli/logs.view.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.view.descriptor.js +51 -0
- package/dist/cli/logs.view.descriptor.js.map +1 -0
- package/dist/cli/logs.view.impl.d.ts +21 -0
- package/dist/cli/logs.view.impl.d.ts.map +1 -0
- package/dist/cli/logs.view.impl.js +85 -0
- package/dist/cli/logs.view.impl.js.map +1 -0
- package/dist/cli/types.d.ts +57 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +9 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/contexts/audit.d.ts +34 -0
- package/dist/contexts/audit.d.ts.map +1 -0
- package/dist/contexts/audit.js +13 -0
- package/dist/contexts/audit.js.map +1 -0
- package/dist/contexts/fallback-logger.d.ts +3 -0
- package/dist/contexts/fallback-logger.d.ts.map +1 -0
- package/dist/contexts/fallback-logger.js +67 -0
- package/dist/contexts/fallback-logger.js.map +1 -0
- package/dist/contexts/index.d.ts +8 -0
- package/dist/contexts/index.d.ts.map +1 -0
- package/dist/contexts/index.js +9 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/contexts/logger.d.ts +26 -0
- package/dist/contexts/logger.d.ts.map +1 -0
- package/dist/contexts/logger.js +88 -0
- package/dist/contexts/logger.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +3 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +118 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/namespace.d.ts +69 -0
- package/dist/core/namespace.d.ts.map +1 -0
- package/dist/core/namespace.js +136 -0
- package/dist/core/namespace.js.map +1 -0
- package/dist/core/parsing.d.ts +3 -0
- package/dist/core/parsing.d.ts.map +1 -0
- package/dist/core/parsing.js +25 -0
- package/dist/core/parsing.js.map +1 -0
- package/dist/core/types.d.ts +69 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +7 -0
- package/dist/core/types.js.map +1 -0
- package/dist/docs/levels.docs.descriptor.d.ts +4 -0
- package/dist/docs/levels.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/levels.docs.descriptor.js +342 -0
- package/dist/docs/levels.docs.descriptor.js.map +1 -0
- package/dist/docs/structured.docs.descriptor.d.ts +4 -0
- package/dist/docs/structured.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/structured.docs.descriptor.js +442 -0
- package/dist/docs/structured.docs.descriptor.js.map +1 -0
- package/dist/docs/transports.docs.descriptor.d.ts +4 -0
- package/dist/docs/transports.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/transports.docs.descriptor.js +426 -0
- package/dist/docs/transports.docs.descriptor.js.map +1 -0
- package/dist/formatters/index.d.ts +7 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +8 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/json/json.formatters.descriptor.d.ts +9 -0
- package/dist/formatters/json/json.formatters.descriptor.d.ts.map +1 -0
- package/dist/formatters/json/json.formatters.descriptor.js +22 -0
- package/dist/formatters/json/json.formatters.descriptor.js.map +1 -0
- package/dist/formatters/json/json.impl.d.ts +22 -0
- package/dist/formatters/json/json.impl.d.ts.map +1 -0
- package/dist/formatters/json/json.impl.js +32 -0
- package/dist/formatters/json/json.impl.js.map +1 -0
- package/dist/formatters/json5/json5.descriptor.d.ts +9 -0
- package/dist/formatters/json5/json5.descriptor.d.ts.map +1 -0
- package/dist/formatters/json5/json5.descriptor.js +22 -0
- package/dist/formatters/json5/json5.descriptor.js.map +1 -0
- package/dist/formatters/json5/json5.impl.d.ts +23 -0
- package/dist/formatters/json5/json5.impl.d.ts.map +1 -0
- package/dist/formatters/json5/json5.impl.js +34 -0
- package/dist/formatters/json5/json5.impl.js.map +1 -0
- package/dist/formatters/jsonl/jsonl.descriptor.d.ts +10 -0
- package/dist/formatters/jsonl/jsonl.descriptor.d.ts.map +1 -0
- package/dist/formatters/jsonl/jsonl.descriptor.js +23 -0
- package/dist/formatters/jsonl/jsonl.descriptor.js.map +1 -0
- package/dist/formatters/jsonl/jsonl.impl.d.ts +21 -0
- package/dist/formatters/jsonl/jsonl.impl.d.ts.map +1 -0
- package/dist/formatters/jsonl/jsonl.impl.js +30 -0
- package/dist/formatters/jsonl/jsonl.impl.js.map +1 -0
- package/dist/formatters/pretty/pretty.descriptor.d.ts +9 -0
- package/dist/formatters/pretty/pretty.descriptor.d.ts.map +1 -0
- package/dist/formatters/pretty/pretty.descriptor.js +23 -0
- package/dist/formatters/pretty/pretty.descriptor.js.map +1 -0
- package/dist/formatters/pretty/pretty.impl.cli.d.ts +23 -0
- package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +1 -0
- package/dist/formatters/pretty/pretty.impl.cli.js +81 -0
- package/dist/formatters/pretty/pretty.impl.cli.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +97 -0
- package/dist/index.js.map +1 -0
- package/dist/kinds/audit.d.ts +85 -0
- package/dist/kinds/audit.d.ts.map +1 -0
- package/dist/kinds/audit.js +71 -0
- package/dist/kinds/audit.js.map +1 -0
- package/dist/kinds/contexts.d.ts +21 -0
- package/dist/kinds/contexts.d.ts.map +1 -0
- package/dist/kinds/contexts.js +8 -0
- package/dist/kinds/contexts.js.map +1 -0
- package/dist/kinds/formatter.d.ts +42 -0
- package/dist/kinds/formatter.d.ts.map +1 -0
- package/dist/kinds/formatter.js +69 -0
- package/dist/kinds/formatter.js.map +1 -0
- package/dist/kinds/index.d.ts +13 -0
- package/dist/kinds/index.d.ts.map +1 -0
- package/dist/kinds/index.js +13 -0
- package/dist/kinds/index.js.map +1 -0
- package/dist/kinds/logger.contracts.d.ts +16 -0
- package/dist/kinds/logger.contracts.d.ts.map +1 -0
- package/dist/kinds/logger.contracts.js +9 -0
- package/dist/kinds/logger.contracts.js.map +1 -0
- package/dist/kinds/logger.d.ts +15 -0
- package/dist/kinds/logger.d.ts.map +1 -0
- package/dist/kinds/logger.impl.d.ts +40 -0
- package/dist/kinds/logger.impl.d.ts.map +1 -0
- package/dist/kinds/logger.impl.js +139 -0
- package/dist/kinds/logger.impl.js.map +1 -0
- package/dist/kinds/logger.js +28 -0
- package/dist/kinds/logger.js.map +1 -0
- package/dist/kinds/logger.utils.d.ts +15 -0
- package/dist/kinds/logger.utils.d.ts.map +1 -0
- package/dist/kinds/logger.utils.js +55 -0
- package/dist/kinds/logger.utils.js.map +1 -0
- package/dist/kinds/output.contracts.d.ts +50 -0
- package/dist/kinds/output.contracts.d.ts.map +1 -0
- package/dist/kinds/output.contracts.js +10 -0
- package/dist/kinds/output.contracts.js.map +1 -0
- package/dist/kinds/output.d.ts +20 -0
- package/dist/kinds/output.d.ts.map +1 -0
- package/dist/kinds/output.impl.d.ts +22 -0
- package/dist/kinds/output.impl.d.ts.map +1 -0
- package/dist/kinds/output.impl.js +84 -0
- package/dist/kinds/output.impl.js.map +1 -0
- package/dist/kinds/output.js +29 -0
- package/dist/kinds/output.js.map +1 -0
- package/dist/kinds/output.types.d.ts +92 -0
- package/dist/kinds/output.types.d.ts.map +1 -0
- package/dist/kinds/output.types.js +7 -0
- package/dist/kinds/output.types.js.map +1 -0
- package/dist/kinds/sink.d.ts +40 -0
- package/dist/kinds/sink.d.ts.map +1 -0
- package/dist/kinds/sink.js +61 -0
- package/dist/kinds/sink.js.map +1 -0
- package/dist/logger.context.descriptor.d.ts +21 -0
- package/dist/logger.context.descriptor.d.ts.map +1 -0
- package/dist/logger.context.descriptor.js +12 -0
- package/dist/logger.context.descriptor.js.map +1 -0
- package/dist/logging.cli.plugin.d.ts +20 -0
- package/dist/logging.cli.plugin.d.ts.map +1 -0
- package/dist/logging.cli.plugin.js +39 -0
- package/dist/logging.cli.plugin.js.map +1 -0
- package/dist/logging.plugin.d.ts +16 -0
- package/dist/logging.plugin.d.ts.map +1 -0
- package/dist/logging.plugin.js +83 -0
- package/dist/logging.plugin.js.map +1 -0
- package/dist/outputs/index.d.ts +7 -0
- package/dist/outputs/index.d.ts.map +1 -0
- package/dist/outputs/index.js +8 -0
- package/dist/outputs/index.js.map +1 -0
- package/dist/outputs/remote/remote.descriptor.d.ts +10 -0
- package/dist/outputs/remote/remote.descriptor.d.ts.map +1 -0
- package/dist/outputs/remote/remote.descriptor.js +24 -0
- package/dist/outputs/remote/remote.descriptor.js.map +1 -0
- package/dist/outputs/remote/remote.impl.d.ts +50 -0
- package/dist/outputs/remote/remote.impl.d.ts.map +1 -0
- package/dist/outputs/remote/remote.impl.js +178 -0
- package/dist/outputs/remote/remote.impl.js.map +1 -0
- package/dist/outputs.context.descriptor.d.ts +19 -0
- package/dist/outputs.context.descriptor.d.ts.map +1 -0
- package/dist/outputs.context.descriptor.js +9 -0
- package/dist/outputs.context.descriptor.js.map +1 -0
- package/dist/outputs.context.impl.d.ts +9 -0
- package/dist/outputs.context.impl.d.ts.map +1 -0
- package/dist/outputs.context.impl.js +18 -0
- package/dist/outputs.context.impl.js.map +1 -0
- package/dist/paths.d.ts +8 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +10 -0
- package/dist/paths.js.map +1 -0
- package/dist/schemas/audit.d.ts +133 -0
- package/dist/schemas/audit.d.ts.map +1 -0
- package/dist/schemas/audit.js +80 -0
- package/dist/schemas/audit.js.map +1 -0
- package/dist/schemas/entry.d.ts +74 -0
- package/dist/schemas/entry.d.ts.map +1 -0
- package/dist/schemas/entry.js +62 -0
- package/dist/schemas/entry.js.map +1 -0
- package/dist/schemas/formatter.d.ts +46 -0
- package/dist/schemas/formatter.d.ts.map +1 -0
- package/dist/schemas/formatter.js +31 -0
- package/dist/schemas/formatter.js.map +1 -0
- package/dist/schemas/index.d.ts +12 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +18 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/logger.d.ts +48 -0
- package/dist/schemas/logger.d.ts.map +1 -0
- package/dist/schemas/logger.js +27 -0
- package/dist/schemas/logger.js.map +1 -0
- package/dist/schemas/output.d.ts +68 -0
- package/dist/schemas/output.d.ts.map +1 -0
- package/dist/schemas/output.js +48 -0
- package/dist/schemas/output.js.map +1 -0
- package/dist/schemas/sink.d.ts +52 -0
- package/dist/schemas/sink.d.ts.map +1 -0
- package/dist/schemas/sink.js +30 -0
- package/dist/schemas/sink.js.map +1 -0
- package/dist/sinks/buffer/buffer.descriptor.d.ts +4 -0
- package/dist/sinks/buffer/buffer.descriptor.d.ts.map +1 -0
- package/dist/sinks/buffer/buffer.descriptor.js +11 -0
- package/dist/sinks/buffer/buffer.descriptor.js.map +1 -0
- package/dist/sinks/buffer/buffer.impl.cli.d.ts +21 -0
- package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +1 -0
- package/dist/sinks/buffer/buffer.impl.cli.js +34 -0
- package/dist/sinks/buffer/buffer.impl.cli.js.map +1 -0
- package/dist/sinks/console/console.descriptor.d.ts +10 -0
- package/dist/sinks/console/console.descriptor.d.ts.map +1 -0
- package/dist/sinks/console/console.descriptor.js +17 -0
- package/dist/sinks/console/console.descriptor.js.map +1 -0
- package/dist/sinks/console/console.impl.browser.d.ts +21 -0
- package/dist/sinks/console/console.impl.browser.d.ts.map +1 -0
- package/dist/sinks/console/console.impl.browser.js +57 -0
- package/dist/sinks/console/console.impl.browser.js.map +1 -0
- package/dist/sinks/console/console.impl.cli.d.ts +21 -0
- package/dist/sinks/console/console.impl.cli.d.ts.map +1 -0
- package/dist/sinks/console/console.impl.cli.js +57 -0
- package/dist/sinks/console/console.impl.cli.js.map +1 -0
- package/dist/sinks/index.d.ts +8 -0
- package/dist/sinks/index.d.ts.map +1 -0
- package/dist/sinks/index.js +8 -0
- package/dist/sinks/index.js.map +1 -0
- package/dist/sinks/memory/memory.descriptor.d.ts +10 -0
- package/dist/sinks/memory/memory.descriptor.d.ts.map +1 -0
- package/dist/sinks/memory/memory.descriptor.js +17 -0
- package/dist/sinks/memory/memory.descriptor.js.map +1 -0
- package/dist/sinks/memory/memory.impl.d.ts +50 -0
- package/dist/sinks/memory/memory.impl.d.ts.map +1 -0
- package/dist/sinks/memory/memory.impl.js +88 -0
- package/dist/sinks/memory/memory.impl.js.map +1 -0
- package/dist/sinks/stdout/stdout.descriptor.d.ts +4 -0
- package/dist/sinks/stdout/stdout.descriptor.d.ts.map +1 -0
- package/dist/sinks/stdout/stdout.descriptor.js +11 -0
- package/dist/sinks/stdout/stdout.descriptor.js.map +1 -0
- package/dist/sinks/stdout/stdout.impl.cli.d.ts +10 -0
- package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +1 -0
- package/dist/sinks/stdout/stdout.impl.cli.js +21 -0
- package/dist/sinks/stdout/stdout.impl.cli.js.map +1 -0
- package/dist/sinks.context.descriptor.d.ts +19 -0
- package/dist/sinks.context.descriptor.d.ts.map +1 -0
- package/dist/sinks.context.descriptor.js +9 -0
- package/dist/sinks.context.descriptor.js.map +1 -0
- package/dist/sinks.context.impl.d.ts +9 -0
- package/dist/sinks.context.impl.d.ts.map +1 -0
- package/dist/sinks.context.impl.js +18 -0
- package/dist/sinks.context.impl.js.map +1 -0
- package/package.json +331 -0
- package/src/audit/audit.descriptor.ts +45 -0
- package/src/audit/audit.storage.schema.ts +57 -0
- package/src/audit/index.ts +8 -0
- package/src/cli/logs.descriptor.ts +19 -0
- package/src/cli/logs.list.descriptor.ts +28 -0
- package/src/cli/logs.list.impl.ts +93 -0
- package/src/cli/logs.rotate.descriptor.ts +40 -0
- package/src/cli/logs.rotate.impl.ts +61 -0
- package/src/cli/logs.search.descriptor.ts +61 -0
- package/src/cli/logs.search.impl.ts +173 -0
- package/src/cli/logs.tail.descriptor.ts +49 -0
- package/src/cli/logs.tail.impl.ts +105 -0
- package/src/cli/logs.view.descriptor.ts +57 -0
- package/src/cli/logs.view.impl.ts +108 -0
- package/src/cli/types.ts +59 -0
- package/src/contexts/audit.ts +36 -0
- package/src/contexts/fallback-logger.ts +80 -0
- package/src/contexts/index.ts +23 -0
- package/src/contexts/logger.ts +119 -0
- package/src/core/index.ts +32 -0
- package/src/core/logger.ts +150 -0
- package/src/core/namespace.ts +195 -0
- package/src/core/parsing.ts +21 -0
- package/src/core/types.ts +82 -0
- package/src/docs/levels.docs.descriptor.ts +344 -0
- package/src/docs/structured.docs.descriptor.ts +444 -0
- package/src/docs/transports.docs.descriptor.ts +428 -0
- package/src/formatters/index.ts +6 -0
- package/src/formatters/json/json.formatters.descriptor.ts +25 -0
- package/src/formatters/json/json.impl.ts +41 -0
- package/src/formatters/json5/json5.descriptor.ts +25 -0
- package/src/formatters/json5/json5.impl.ts +43 -0
- package/src/formatters/jsonl/jsonl.descriptor.ts +26 -0
- package/src/formatters/jsonl/jsonl.impl.ts +39 -0
- package/src/formatters/pretty/pretty.descriptor.ts +26 -0
- package/src/formatters/pretty/pretty.impl.cli.ts +101 -0
- package/src/index.ts +190 -0
- package/src/kinds/audit.ts +169 -0
- package/src/kinds/contexts.ts +22 -0
- package/src/kinds/formatter.ts +117 -0
- package/src/kinds/index.ts +25 -0
- package/src/kinds/logger.contracts.ts +17 -0
- package/src/kinds/logger.impl.ts +206 -0
- package/src/kinds/logger.ts +46 -0
- package/src/kinds/logger.utils.ts +91 -0
- package/src/kinds/output.contracts.ts +54 -0
- package/src/kinds/output.impl.ts +118 -0
- package/src/kinds/output.ts +59 -0
- package/src/kinds/output.types.ts +105 -0
- package/src/kinds/sink.ts +100 -0
- package/src/logger.context.descriptor.ts +13 -0
- package/src/logging.cli.plugin.ts +43 -0
- package/src/logging.plugin.ts +93 -0
- package/src/outputs/index.ts +6 -0
- package/src/outputs/remote/remote.descriptor.ts +27 -0
- package/src/outputs/remote/remote.impl.ts +218 -0
- package/src/outputs.context.descriptor.ts +10 -0
- package/src/outputs.context.impl.ts +30 -0
- package/src/paths.ts +10 -0
- package/src/schemas/audit.ts +98 -0
- package/src/schemas/entry.ts +88 -0
- package/src/schemas/formatter.ts +37 -0
- package/src/schemas/index.ts +80 -0
- package/src/schemas/logger.ts +38 -0
- package/src/schemas/output.ts +62 -0
- package/src/schemas/sink.ts +39 -0
- package/src/sinks/buffer/buffer.descriptor.ts +13 -0
- package/src/sinks/buffer/buffer.impl.cli.ts +49 -0
- package/src/sinks/console/console.descriptor.ts +20 -0
- package/src/sinks/console/console.impl.browser.ts +69 -0
- package/src/sinks/console/console.impl.cli.ts +71 -0
- package/src/sinks/index.ts +8 -0
- package/src/sinks/memory/memory.descriptor.ts +20 -0
- package/src/sinks/memory/memory.impl.ts +119 -0
- package/src/sinks/stdout/stdout.descriptor.ts +13 -0
- package/src/sinks/stdout/stdout.impl.cli.ts +27 -0
- package/src/sinks.context.descriptor.ts +10 -0
- package/src/sinks.context.impl.ts +30 -0
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'docs/topic',
|
|
3
|
+
id: 'logging.transports',
|
|
4
|
+
title: 'Logging Transports',
|
|
5
|
+
summary: 'Transport layers including console, file, and remote outputs',
|
|
6
|
+
body: {
|
|
7
|
+
type: 'markdown',
|
|
8
|
+
sourceType: 'raw',
|
|
9
|
+
source: `---
|
|
10
|
+
title: Logging Transports
|
|
11
|
+
summary: Transport layers including console, file, and remote outputs
|
|
12
|
+
tags: [logging, transports, console, file, remote, outputs]
|
|
13
|
+
parent: logging
|
|
14
|
+
order: 2
|
|
15
|
+
surfaces: [cli, web, in-app]
|
|
16
|
+
hardware: [consumer, cloud]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Logging Transports
|
|
20
|
+
|
|
21
|
+
Transports (called "sinks" and "outputs" in the logging system) determine where log entries are written. The \`logging/sink\` and \`logging/output\` runtime kinds provide multiple transport options.
|
|
22
|
+
|
|
23
|
+
## Transport Types
|
|
24
|
+
|
|
25
|
+
### Console Sink
|
|
26
|
+
|
|
27
|
+
Writes to stdout/stderr:
|
|
28
|
+
|
|
29
|
+
\`\`\`ts
|
|
30
|
+
import { logger } from '@vibesdotdev/logging';
|
|
31
|
+
|
|
32
|
+
logger.info('Console output');
|
|
33
|
+
// [INFO] [app] Console output
|
|
34
|
+
\`\`\`
|
|
35
|
+
|
|
36
|
+
**Configuration:**
|
|
37
|
+
- Default for CLI and browser
|
|
38
|
+
- Uses pretty formatter by default
|
|
39
|
+
- Color-coded output
|
|
40
|
+
|
|
41
|
+
**Use cases:**
|
|
42
|
+
- Development debugging
|
|
43
|
+
- CLI applications
|
|
44
|
+
- Browser console
|
|
45
|
+
|
|
46
|
+
### File Output
|
|
47
|
+
|
|
48
|
+
Writes to log files:
|
|
49
|
+
|
|
50
|
+
\`\`\`ts
|
|
51
|
+
import { getVibesRuntime } from '@vibesdotdev/runtime';
|
|
52
|
+
|
|
53
|
+
const runtime = getVibesRuntime();
|
|
54
|
+
|
|
55
|
+
await runtime.registerPlugin(loggingPlugin({
|
|
56
|
+
outputs: [{
|
|
57
|
+
type: 'file',
|
|
58
|
+
path: './logs/app.log',
|
|
59
|
+
format: 'jsonl',
|
|
60
|
+
maxSize: '10MB',
|
|
61
|
+
maxFiles: 5
|
|
62
|
+
}]
|
|
63
|
+
}));
|
|
64
|
+
\`\`\`
|
|
65
|
+
|
|
66
|
+
**Features:**
|
|
67
|
+
- Automatic rotation
|
|
68
|
+
- Compression of old files
|
|
69
|
+
- Timestamp-based naming
|
|
70
|
+
|
|
71
|
+
**Use cases:**
|
|
72
|
+
- Production logging
|
|
73
|
+
- Audit trails
|
|
74
|
+
- Long-term storage
|
|
75
|
+
|
|
76
|
+
### Memory Sink
|
|
77
|
+
|
|
78
|
+
Buffers logs in memory:
|
|
79
|
+
|
|
80
|
+
\`\`\`ts
|
|
81
|
+
import { memorySinkPlugin } from '@vibesdotdev/logging';
|
|
82
|
+
|
|
83
|
+
await runtime.registerPlugin(memorySinkPlugin({
|
|
84
|
+
maxSize: 1000, // Keep last 1000 entries
|
|
85
|
+
flushOn: 'error' // Auto-flush on error level
|
|
86
|
+
}));
|
|
87
|
+
\`\`\`
|
|
88
|
+
|
|
89
|
+
**Use cases:**
|
|
90
|
+
- Testing
|
|
91
|
+
- Debug sessions
|
|
92
|
+
- Temporary buffering
|
|
93
|
+
|
|
94
|
+
### Buffer Sink
|
|
95
|
+
|
|
96
|
+
Circular buffer with flush capability:
|
|
97
|
+
|
|
98
|
+
\`\`\`ts
|
|
99
|
+
import { bufferSinkPlugin } from '@vibesdotdev/logging';
|
|
100
|
+
|
|
101
|
+
await runtime.registerPlugin(bufferSinkPlugin({
|
|
102
|
+
capacity: 500,
|
|
103
|
+
flushInterval: 60_000 // Flush every minute
|
|
104
|
+
}));
|
|
105
|
+
\`\`\`
|
|
106
|
+
|
|
107
|
+
**Use cases:**
|
|
108
|
+
- Batch processing
|
|
109
|
+
- Network optimization
|
|
110
|
+
- Error context capture
|
|
111
|
+
|
|
112
|
+
### Remote Output
|
|
113
|
+
|
|
114
|
+
Sends logs to remote service:
|
|
115
|
+
|
|
116
|
+
\`\`\`ts
|
|
117
|
+
import { remoteOutputPlugin } from '@vibesdotdev/logging';
|
|
118
|
+
|
|
119
|
+
await runtime.registerPlugin(remoteOutputPlugin({
|
|
120
|
+
endpoint: 'https://logs.vibes.dev/ingest',
|
|
121
|
+
apiKey: process.env.LOGS_API_KEY,
|
|
122
|
+
batchSize: 100,
|
|
123
|
+
flushInterval: 5_000
|
|
124
|
+
}));
|
|
125
|
+
\`\`\`
|
|
126
|
+
|
|
127
|
+
**Features:**
|
|
128
|
+
- Batched delivery
|
|
129
|
+
- Retry on failure
|
|
130
|
+
- Compression
|
|
131
|
+
|
|
132
|
+
**Use cases:**
|
|
133
|
+
- Centralized logging
|
|
134
|
+
- Log aggregation services
|
|
135
|
+
- Multi-app correlation
|
|
136
|
+
|
|
137
|
+
## Configuring Transports
|
|
138
|
+
|
|
139
|
+
### Multiple Transports
|
|
140
|
+
|
|
141
|
+
\`\`\`ts
|
|
142
|
+
import { loggingPlugin } from '@vibesdotdev/logging';
|
|
143
|
+
|
|
144
|
+
await runtime.registerPlugin(loggingPlugin({
|
|
145
|
+
sinks: ['console', 'memory'],
|
|
146
|
+
outputs: [{
|
|
147
|
+
type: 'file',
|
|
148
|
+
path: './logs/app.log'
|
|
149
|
+
}, {
|
|
150
|
+
type: 'remote',
|
|
151
|
+
endpoint: 'https://logs.vibes.dev/ingest'
|
|
152
|
+
}]
|
|
153
|
+
}));
|
|
154
|
+
\`\`\`
|
|
155
|
+
|
|
156
|
+
**Log flow:**
|
|
157
|
+
\`\`\`
|
|
158
|
+
Logger → Console (immediate)
|
|
159
|
+
→ Memory (buffer)
|
|
160
|
+
→ File (batched)
|
|
161
|
+
→ Remote (batched, compressed)
|
|
162
|
+
\`\`\`
|
|
163
|
+
|
|
164
|
+
### Transport Selection by Environment
|
|
165
|
+
|
|
166
|
+
\`\`\`ts
|
|
167
|
+
const loggingConfig = {
|
|
168
|
+
development: {
|
|
169
|
+
sinks: ['console'],
|
|
170
|
+
level: 'debug'
|
|
171
|
+
},
|
|
172
|
+
production: {
|
|
173
|
+
sinks: ['console', 'memory'],
|
|
174
|
+
outputs: [
|
|
175
|
+
{ type: 'file', path: '/var/log/app.log' },
|
|
176
|
+
{ type: 'remote', endpoint: 'https://logs.vibes.dev' }
|
|
177
|
+
],
|
|
178
|
+
level: 'info'
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
const env = process.env.NODE_ENV || 'development';
|
|
183
|
+
await runtime.registerPlugin(loggingPlugin(loggingConfig[env]));
|
|
184
|
+
\`\`\`
|
|
185
|
+
|
|
186
|
+
### Transport Selection by Hardware
|
|
187
|
+
|
|
188
|
+
\`\`\`ts
|
|
189
|
+
const loggingConfig = {
|
|
190
|
+
consumer: {
|
|
191
|
+
sinks: ['console'],
|
|
192
|
+
outputs: [{ type: 'file', path: '~/.logs/app.log' }]
|
|
193
|
+
},
|
|
194
|
+
cloud: {
|
|
195
|
+
sinks: ['stdout'],
|
|
196
|
+
outputs: [{ type: 'remote', endpoint: 'https://logs.vibes.dev' }]
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
const hardware = runtime.scope.hardware;
|
|
201
|
+
await runtime.registerPlugin(loggingPlugin(loggingConfig[hardware]));
|
|
202
|
+
\`\`\`
|
|
203
|
+
|
|
204
|
+
## Formatter Integration
|
|
205
|
+
|
|
206
|
+
Transports use formatters to format log entries:
|
|
207
|
+
|
|
208
|
+
### Pretty Formatter (Console)
|
|
209
|
+
|
|
210
|
+
\`\`\`ts
|
|
211
|
+
[INFO] [app:server] Server started on port 3000
|
|
212
|
+
\`\`\`
|
|
213
|
+
|
|
214
|
+
**Features:**
|
|
215
|
+
- Color-coded levels
|
|
216
|
+
- Human-readable timestamps
|
|
217
|
+
- Indented context objects
|
|
218
|
+
|
|
219
|
+
### JSON Formatter
|
|
220
|
+
|
|
221
|
+
\`\`\`json
|
|
222
|
+
{"level":"info","namespace":"app:server","message":"Server started","port":3000,"timestamp":"2024-01-01T00:00:00.000Z"}
|
|
223
|
+
\`\`\`
|
|
224
|
+
|
|
225
|
+
**Features:**
|
|
226
|
+
- Machine-parseable
|
|
227
|
+
- Structured data
|
|
228
|
+
- Log aggregation friendly
|
|
229
|
+
|
|
230
|
+
### JSONL Formatter
|
|
231
|
+
|
|
232
|
+
\`\`\`
|
|
233
|
+
{"level":"info",...}
|
|
234
|
+
{"level":"error",...}
|
|
235
|
+
{"level":"warn",...}
|
|
236
|
+
\`\`\`
|
|
237
|
+
|
|
238
|
+
**Features:**
|
|
239
|
+
- One JSON per line
|
|
240
|
+
- Easy streaming
|
|
241
|
+
- Efficient storage
|
|
242
|
+
|
|
243
|
+
## Transport Configuration
|
|
244
|
+
|
|
245
|
+
### Console Sink
|
|
246
|
+
|
|
247
|
+
\`\`\`ts
|
|
248
|
+
import { consoleSinkPlugin } from '@vibesdotdev/logging';
|
|
249
|
+
|
|
250
|
+
await runtime.registerPlugin(consoleSinkPlugin({
|
|
251
|
+
stderrThreshold: 'warn', // warn/error to stderr
|
|
252
|
+
colors: true, // ANSI colors
|
|
253
|
+
timestamp: true // Include timestamps
|
|
254
|
+
}));
|
|
255
|
+
\`\`\`
|
|
256
|
+
|
|
257
|
+
### File Output
|
|
258
|
+
|
|
259
|
+
\`\`\`ts
|
|
260
|
+
import { fileOutputPlugin } from '@vibesdotdev/logging';
|
|
261
|
+
|
|
262
|
+
await runtime.registerPlugin(fileOutputPlugin({
|
|
263
|
+
path: './logs/app.log',
|
|
264
|
+
format: 'jsonl',
|
|
265
|
+
rotation: {
|
|
266
|
+
strategy: 'size',
|
|
267
|
+
maxSize: '10MB',
|
|
268
|
+
maxFiles: 5,
|
|
269
|
+
compress: true
|
|
270
|
+
},
|
|
271
|
+
schedule: {
|
|
272
|
+
type: 'daily',
|
|
273
|
+
time: '00:00' // Rotate at midnight
|
|
274
|
+
}
|
|
275
|
+
}));
|
|
276
|
+
\`\`\`
|
|
277
|
+
|
|
278
|
+
### Remote Output
|
|
279
|
+
|
|
280
|
+
\`\`\`ts
|
|
281
|
+
import { remoteOutputPlugin } from '@vibesdotdev/logging';
|
|
282
|
+
|
|
283
|
+
await runtime.registerPlugin(remoteOutputPlugin({
|
|
284
|
+
endpoint: 'https://logs.vibes.dev/ingest',
|
|
285
|
+
method: 'POST',
|
|
286
|
+
headers: {
|
|
287
|
+
'Authorization': \`Bearer \${process.env.LOGS_API_KEY}\`,
|
|
288
|
+
'Content-Type': 'application/json'
|
|
289
|
+
},
|
|
290
|
+
batch: {
|
|
291
|
+
maxSize: 100,
|
|
292
|
+
maxWait: 5_000
|
|
293
|
+
},
|
|
294
|
+
retry: {
|
|
295
|
+
maxAttempts: 3,
|
|
296
|
+
backoff: 'exponential',
|
|
297
|
+
initialDelay: 1_000
|
|
298
|
+
},
|
|
299
|
+
compression: 'gzip'
|
|
300
|
+
}));
|
|
301
|
+
\`\`\`
|
|
302
|
+
|
|
303
|
+
## Transport Lifecycle
|
|
304
|
+
|
|
305
|
+
### Initialization
|
|
306
|
+
|
|
307
|
+
\`\`\`ts
|
|
308
|
+
const transport = await runtime.query('logging/sink')
|
|
309
|
+
.filter(d => d.id === 'console')
|
|
310
|
+
.resolve();
|
|
311
|
+
|
|
312
|
+
await transport.ensureReady();
|
|
313
|
+
\`\`\`
|
|
314
|
+
|
|
315
|
+
### Flushing
|
|
316
|
+
|
|
317
|
+
\`\`\`ts
|
|
318
|
+
// Flush buffered logs
|
|
319
|
+
await transport.flush();
|
|
320
|
+
|
|
321
|
+
// Or auto-flush on interval
|
|
322
|
+
await runtime.registerPlugin(bufferSinkPlugin({
|
|
323
|
+
flushInterval: 60_000 // 1 minute
|
|
324
|
+
}));
|
|
325
|
+
\`\`\`
|
|
326
|
+
|
|
327
|
+
### Cleanup
|
|
328
|
+
|
|
329
|
+
\`\`\`ts
|
|
330
|
+
// Close transport and release resources
|
|
331
|
+
await transport.close();
|
|
332
|
+
\`\`\`
|
|
333
|
+
|
|
334
|
+
## Transport Resolution
|
|
335
|
+
|
|
336
|
+
### Query by ID
|
|
337
|
+
|
|
338
|
+
\`\`\`ts
|
|
339
|
+
const consoleSink = await runtime.query('logging/sink')
|
|
340
|
+
.filter(d => d.id === 'console')
|
|
341
|
+
.resolve();
|
|
342
|
+
\`\`\`
|
|
343
|
+
|
|
344
|
+
### Query by Hardware
|
|
345
|
+
|
|
346
|
+
\`\`\`ts
|
|
347
|
+
const sink = await runtime.query('logging/sink')
|
|
348
|
+
.forHardware('consumer')
|
|
349
|
+
.resolve();
|
|
350
|
+
\`\`\`
|
|
351
|
+
|
|
352
|
+
### List All Transports
|
|
353
|
+
|
|
354
|
+
\`\`\`ts
|
|
355
|
+
const sinks = runtime.query('logging/sink').descriptors();
|
|
356
|
+
const outputs = runtime.query('logging/output').descriptors();
|
|
357
|
+
|
|
358
|
+
console.log('Available sinks:', sinks.map(s => s.id));
|
|
359
|
+
console.log('Available outputs:', outputs.map(o => o.id));
|
|
360
|
+
\`\`\`
|
|
361
|
+
|
|
362
|
+
## Custom Transport
|
|
363
|
+
|
|
364
|
+
\`\`\`ts
|
|
365
|
+
import { createRuntimePlugin } from '@vibesdotdev/runtime';
|
|
366
|
+
import type { SinkImplementation } from '@vibesdotdev/logging';
|
|
367
|
+
|
|
368
|
+
class CustomSink implements SinkImplementation {
|
|
369
|
+
constructor(private config: CustomConfig) {}
|
|
370
|
+
|
|
371
|
+
emit(entry: LogEntry): void {
|
|
372
|
+
// Custom transport logic
|
|
373
|
+
console.log('Custom:', entry);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
async flush(): Promise<void> {
|
|
377
|
+
// Flush buffered entries
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
async close(): Promise<void> {
|
|
381
|
+
// Cleanup resources
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
const descriptor: SinkDescriptor = {
|
|
386
|
+
kind: 'logging/sink',
|
|
387
|
+
id: 'logging.sink.custom',
|
|
388
|
+
title: 'Custom Sink'
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
export const customSinkPlugin = createRuntimePlugin({
|
|
392
|
+
id: 'custom-sink',
|
|
393
|
+
kinds: [{
|
|
394
|
+
id: 'logging/sink',
|
|
395
|
+
descriptorSchema: SinkDescriptorSchema,
|
|
396
|
+
defaultImplementation: CustomSink
|
|
397
|
+
}],
|
|
398
|
+
descriptors: [descriptor]
|
|
399
|
+
});
|
|
400
|
+
\`\`\`
|
|
401
|
+
|
|
402
|
+
## Transport Best Practices
|
|
403
|
+
|
|
404
|
+
1. **Use appropriate transports** — Console for dev, file/remote for prod
|
|
405
|
+
2. **Configure rotation** — Prevent disk exhaustion
|
|
406
|
+
3. **Batch remote sends** — Reduce network overhead
|
|
407
|
+
4. **Handle failures gracefully** — Don't crash on log failures
|
|
408
|
+
5. **Sanitize sensitive data** — Remove PII before sending
|
|
409
|
+
6. **Monitor transport health** — Alert on delivery failures
|
|
410
|
+
|
|
411
|
+
:::card{title="See also"}
|
|
412
|
+
- [\`logging.levels\`](logging.levels) — Log levels
|
|
413
|
+
- [\`logging.structured\`](logging.structured) — Structured logging
|
|
414
|
+
- [\`config.environment\`](config.environment) — Environment configuration
|
|
415
|
+
:::
|
|
416
|
+
`
|
|
417
|
+
},
|
|
418
|
+
parent: 'logging',
|
|
419
|
+
order: 2,
|
|
420
|
+
tags: ['logging', 'transports', 'console', 'file', 'remote', 'outputs'],
|
|
421
|
+
surfaces: ['cli', 'web', 'in-app'],
|
|
422
|
+
hardware: ['consumer', 'cloud'],
|
|
423
|
+
enabled: true
|
|
424
|
+
};
|
|
425
|
+
export default descriptor;
|
|
426
|
+
//# sourceMappingURL=transports.docs.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transports.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/transports.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,oBAAoB;IACxB,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,8DAA8D;IACvE,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuZT;KACC;IACD,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;IACvE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formatters/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatters/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Formatter Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Formats log entries as pretty-printed JSON.
|
|
5
|
+
*/
|
|
6
|
+
import type { FormatterDescriptor } from '../../schemas/formatter.ts';
|
|
7
|
+
export declare const jsonFormatterDescriptor: FormatterDescriptor;
|
|
8
|
+
export default jsonFormatterDescriptor;
|
|
9
|
+
//# sourceMappingURL=json.formatters.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.formatters.descriptor.d.ts","sourceRoot":"","sources":["../../../src/formatters/json/json.formatters.descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,eAAO,MAAM,uBAAuB,EAAE,mBAcrC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Formatter Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Formats log entries as pretty-printed JSON.
|
|
5
|
+
*/
|
|
6
|
+
export const jsonFormatterDescriptor = {
|
|
7
|
+
kind: 'logging/formatter',
|
|
8
|
+
id: 'json',
|
|
9
|
+
name: 'JSON Formatter',
|
|
10
|
+
description: 'Formats log entries as indented JSON',
|
|
11
|
+
tags: ['readable', 'debug'],
|
|
12
|
+
format: 'json',
|
|
13
|
+
options: {
|
|
14
|
+
indent: 2,
|
|
15
|
+
includeTimestamp: true,
|
|
16
|
+
includeNamespace: true,
|
|
17
|
+
includeLevel: true,
|
|
18
|
+
colors: false
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export default jsonFormatterDescriptor;
|
|
22
|
+
//# sourceMappingURL=json.formatters.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.formatters.descriptor.js","sourceRoot":"","sources":["../../../src/formatters/json/json.formatters.descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC3D,IAAI,EAAE,mBAAmB;IACzB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,sCAAsC;IACnD,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM;IACd,OAAO,EAAE;QACR,MAAM,EAAE,CAAC;QACT,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK;KACb;CACD,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Formatter Implementation
|
|
3
|
+
*
|
|
4
|
+
* Pretty-printed JSON with configurable indentation.
|
|
5
|
+
*/
|
|
6
|
+
import type { FormatterImplementation, FormatterContext } from '../../kinds/formatter.ts';
|
|
7
|
+
import type { FormatterDescriptor } from '../../schemas/formatter.ts';
|
|
8
|
+
import type { RuntimeLogEntry } from '../../schemas/entry.ts';
|
|
9
|
+
/**
|
|
10
|
+
* JSON formatter - indented JSON for readability.
|
|
11
|
+
*/
|
|
12
|
+
export default class JsonFormatter implements FormatterImplementation {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly descriptor: FormatterDescriptor;
|
|
15
|
+
private readonly indent;
|
|
16
|
+
constructor(descriptor: FormatterDescriptor, _context: FormatterContext);
|
|
17
|
+
format(entry: RuntimeLogEntry): string;
|
|
18
|
+
parse(formatted: string): RuntimeLogEntry;
|
|
19
|
+
formatBatch(entries: RuntimeLogEntry[]): string;
|
|
20
|
+
parseBatch(formatted: string): RuntimeLogEntry[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=json.impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.impl.d.ts","sourceRoot":"","sources":["../../../src/formatters/json/json.impl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,YAAW,uBAAuB;IACpE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB;IAMvE,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAItC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;IAIzC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAI/C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;CAIhD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Formatter Implementation
|
|
3
|
+
*
|
|
4
|
+
* Pretty-printed JSON with configurable indentation.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* JSON formatter - indented JSON for readability.
|
|
8
|
+
*/
|
|
9
|
+
export default class JsonFormatter {
|
|
10
|
+
id;
|
|
11
|
+
descriptor;
|
|
12
|
+
indent;
|
|
13
|
+
constructor(descriptor, _context) {
|
|
14
|
+
this.id = descriptor.id;
|
|
15
|
+
this.descriptor = descriptor;
|
|
16
|
+
this.indent = descriptor.options?.indent ?? 2;
|
|
17
|
+
}
|
|
18
|
+
format(entry) {
|
|
19
|
+
return JSON.stringify(entry, null, this.indent);
|
|
20
|
+
}
|
|
21
|
+
parse(formatted) {
|
|
22
|
+
return JSON.parse(formatted);
|
|
23
|
+
}
|
|
24
|
+
formatBatch(entries) {
|
|
25
|
+
return JSON.stringify(entries, null, this.indent);
|
|
26
|
+
}
|
|
27
|
+
parseBatch(formatted) {
|
|
28
|
+
const parsed = JSON.parse(formatted);
|
|
29
|
+
return Array.isArray(parsed) ? parsed : [parsed];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=json.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.impl.js","sourceRoot":"","sources":["../../../src/formatters/json/json.impl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IACxB,EAAE,CAAS;IACX,UAAU,CAAsB;IACxB,MAAM,CAAS;IAEhC,YAAY,UAA+B,EAAE,QAA0B;QACtE,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAsB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAoB,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,OAA0B;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,UAAU,CAAC,SAAiB;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;CACD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON5 Formatter Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Formats log entries as JSON5 (human-readable JSON with comments).
|
|
5
|
+
*/
|
|
6
|
+
import type { FormatterDescriptor } from '../../schemas/formatter.ts';
|
|
7
|
+
export declare const json5FormatterDescriptor: FormatterDescriptor;
|
|
8
|
+
export default json5FormatterDescriptor;
|
|
9
|
+
//# sourceMappingURL=json5.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json5.descriptor.d.ts","sourceRoot":"","sources":["../../../src/formatters/json5/json5.descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,eAAO,MAAM,wBAAwB,EAAE,mBActC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON5 Formatter Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Formats log entries as JSON5 (human-readable JSON with comments).
|
|
5
|
+
*/
|
|
6
|
+
export const json5FormatterDescriptor = {
|
|
7
|
+
kind: 'logging/formatter',
|
|
8
|
+
id: 'json5',
|
|
9
|
+
name: 'JSON5 Formatter',
|
|
10
|
+
description: 'Formats log entries as JSON5 for human readability',
|
|
11
|
+
tags: ['readable', 'config'],
|
|
12
|
+
format: 'json5',
|
|
13
|
+
options: {
|
|
14
|
+
indent: 2,
|
|
15
|
+
includeTimestamp: true,
|
|
16
|
+
includeNamespace: true,
|
|
17
|
+
includeLevel: true,
|
|
18
|
+
colors: false
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export default json5FormatterDescriptor;
|
|
22
|
+
//# sourceMappingURL=json5.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json5.descriptor.js","sourceRoot":"","sources":["../../../src/formatters/json5/json5.descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC5D,IAAI,EAAE,mBAAmB;IACzB,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,oDAAoD;IACjE,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC5B,MAAM,EAAE,OAAO;IACf,OAAO,EAAE;QACR,MAAM,EAAE,CAAC;QACT,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK;KACb;CACD,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON5 Formatter Implementation
|
|
3
|
+
*
|
|
4
|
+
* Uses JSON5 for human-readable output with comments support.
|
|
5
|
+
* Note: For serialization, we use standard JSON since JSON5 is a superset.
|
|
6
|
+
*/
|
|
7
|
+
import type { FormatterImplementation, FormatterContext } from '../../kinds/formatter.ts';
|
|
8
|
+
import type { FormatterDescriptor } from '../../schemas/formatter.ts';
|
|
9
|
+
import type { RuntimeLogEntry } from '../../schemas/entry.ts';
|
|
10
|
+
/**
|
|
11
|
+
* JSON5 formatter - human-readable JSON.
|
|
12
|
+
*/
|
|
13
|
+
export default class Json5Formatter implements FormatterImplementation {
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly descriptor: FormatterDescriptor;
|
|
16
|
+
private readonly indent;
|
|
17
|
+
constructor(descriptor: FormatterDescriptor, _context: FormatterContext);
|
|
18
|
+
format(entry: RuntimeLogEntry): string;
|
|
19
|
+
parse(formatted: string): RuntimeLogEntry;
|
|
20
|
+
formatBatch(entries: RuntimeLogEntry[]): string;
|
|
21
|
+
parseBatch(formatted: string): RuntimeLogEntry[];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=json5.impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json5.impl.d.ts","sourceRoot":"","sources":["../../../src/formatters/json5/json5.impl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,uBAAuB;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB;IAMvE,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAItC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;IAIzC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;IAI/C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;CAIhD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON5 Formatter Implementation
|
|
3
|
+
*
|
|
4
|
+
* Uses JSON5 for human-readable output with comments support.
|
|
5
|
+
* Note: For serialization, we use standard JSON since JSON5 is a superset.
|
|
6
|
+
*/
|
|
7
|
+
import JSON5 from 'json5';
|
|
8
|
+
/**
|
|
9
|
+
* JSON5 formatter - human-readable JSON.
|
|
10
|
+
*/
|
|
11
|
+
export default class Json5Formatter {
|
|
12
|
+
id;
|
|
13
|
+
descriptor;
|
|
14
|
+
indent;
|
|
15
|
+
constructor(descriptor, _context) {
|
|
16
|
+
this.id = descriptor.id;
|
|
17
|
+
this.descriptor = descriptor;
|
|
18
|
+
this.indent = descriptor.options?.indent ?? 2;
|
|
19
|
+
}
|
|
20
|
+
format(entry) {
|
|
21
|
+
return JSON5.stringify(entry, null, this.indent);
|
|
22
|
+
}
|
|
23
|
+
parse(formatted) {
|
|
24
|
+
return JSON5.parse(formatted);
|
|
25
|
+
}
|
|
26
|
+
formatBatch(entries) {
|
|
27
|
+
return JSON5.stringify(entries, null, this.indent);
|
|
28
|
+
}
|
|
29
|
+
parseBatch(formatted) {
|
|
30
|
+
const parsed = JSON5.parse(formatted);
|
|
31
|
+
return Array.isArray(parsed) ? parsed : [parsed];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=json5.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json5.impl.js","sourceRoot":"","sources":["../../../src/formatters/json5/json5.impl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACzB,EAAE,CAAS;IACX,UAAU,CAAsB;IACxB,MAAM,CAAS;IAEhC,YAAY,UAA+B,EAAE,QAA0B;QACtE,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAsB;QAC5B,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,SAAiB;QACtB,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAoB,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,OAA0B;QACrC,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,SAAiB;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;CACD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSONL Formatter Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Formats log entries as newline-delimited JSON.
|
|
5
|
+
* Default formatter for file outputs.
|
|
6
|
+
*/
|
|
7
|
+
import type { FormatterDescriptor } from '../../schemas/formatter.ts';
|
|
8
|
+
export declare const jsonlFormatterDescriptor: FormatterDescriptor;
|
|
9
|
+
export default jsonlFormatterDescriptor;
|
|
10
|
+
//# sourceMappingURL=jsonl.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl.descriptor.d.ts","sourceRoot":"","sources":["../../../src/formatters/jsonl/jsonl.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,eAAO,MAAM,wBAAwB,EAAE,mBActC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|