@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,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Namespace Filtering
|
|
3
|
+
*
|
|
4
|
+
* Controls which log entries are emitted based on namespace patterns.
|
|
5
|
+
*/
|
|
6
|
+
import { LOG_LEVEL_ORDER } from "../schemas/entry.js";
|
|
7
|
+
const DEFAULT_LEVEL = 'info';
|
|
8
|
+
const REGEX_SPECIAL_CHARS = /[\\^$+?.()|[\]{}]/g;
|
|
9
|
+
/**
|
|
10
|
+
* Compile a glob pattern to regex.
|
|
11
|
+
*/
|
|
12
|
+
function compilePattern(pattern) {
|
|
13
|
+
const escaped = pattern.replace(REGEX_SPECIAL_CHARS, '\\$&').replace(/\*/g, '.*');
|
|
14
|
+
return new RegExp(`^${escaped}$`);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse a selector string into includes/excludes.
|
|
18
|
+
* Format: "namespace1,namespace2,-excluded1,-excluded2"
|
|
19
|
+
*/
|
|
20
|
+
function parseSelectors(raw) {
|
|
21
|
+
const selectors = { includes: [], excludes: [] };
|
|
22
|
+
for (const token of raw.split(',').map((value) => value.trim())) {
|
|
23
|
+
if (!token)
|
|
24
|
+
continue;
|
|
25
|
+
const isExclusion = token.startsWith('-');
|
|
26
|
+
const normalized = isExclusion ? token.slice(1) : token;
|
|
27
|
+
if (!normalized)
|
|
28
|
+
continue;
|
|
29
|
+
const selector = {
|
|
30
|
+
raw: normalized,
|
|
31
|
+
regex: compilePattern(normalized),
|
|
32
|
+
isExclusion
|
|
33
|
+
};
|
|
34
|
+
if (isExclusion) {
|
|
35
|
+
selectors.excludes.push(selector);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
selectors.includes.push(selector);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return selectors;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Normalize a level string to LogLevel.
|
|
45
|
+
*/
|
|
46
|
+
function normalizeLevel(level) {
|
|
47
|
+
switch ((level || '').toLowerCase()) {
|
|
48
|
+
case 'debug':
|
|
49
|
+
return 'debug';
|
|
50
|
+
case 'warn':
|
|
51
|
+
return 'warn';
|
|
52
|
+
case 'error':
|
|
53
|
+
return 'error';
|
|
54
|
+
default:
|
|
55
|
+
return 'info';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse namespace settings from input string.
|
|
60
|
+
*/
|
|
61
|
+
export function parseNamespaceSettings({ input, defaultLevel }) {
|
|
62
|
+
const selectors = input ? parseSelectors(input) : { includes: [], excludes: [] };
|
|
63
|
+
return {
|
|
64
|
+
...selectors,
|
|
65
|
+
defaultLevel: normalizeLevel(defaultLevel)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Parse namespace settings from environment variables.
|
|
70
|
+
*/
|
|
71
|
+
export function parseNamespaceSettingsFromEnv(env) {
|
|
72
|
+
const logSelectors = env.VIBES_LOG ?? env.vibes_log ?? undefined;
|
|
73
|
+
const level = env.VIBES_LOG_LEVEL ?? env.vibes_log_level ?? env.LOG_LEVEL ?? env.log_level ?? undefined;
|
|
74
|
+
return parseNamespaceSettings({
|
|
75
|
+
input: logSelectors,
|
|
76
|
+
defaultLevel: level
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Check if a namespace matches a selector.
|
|
81
|
+
*/
|
|
82
|
+
export function matchesSelector(namespace, selector) {
|
|
83
|
+
return selector.regex.test(namespace);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check if a namespace is included by settings.
|
|
87
|
+
*/
|
|
88
|
+
export function isNamespaceIncluded(namespace, settings) {
|
|
89
|
+
const included = settings.includes.length === 0 ||
|
|
90
|
+
settings.includes.some((selector) => matchesSelector(namespace, selector));
|
|
91
|
+
if (!included)
|
|
92
|
+
return false;
|
|
93
|
+
return !settings.excludes.some((selector) => matchesSelector(namespace, selector));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Determine if a log entry should be emitted.
|
|
97
|
+
*/
|
|
98
|
+
export function shouldLog({ namespace, level, settings }) {
|
|
99
|
+
const defaultLevel = settings.defaultLevel ?? DEFAULT_LEVEL;
|
|
100
|
+
const levelIndex = LOG_LEVEL_ORDER[level];
|
|
101
|
+
const baselineIndex = LOG_LEVEL_ORDER[defaultLevel] ?? LOG_LEVEL_ORDER[DEFAULT_LEVEL];
|
|
102
|
+
if (levelIndex >= baselineIndex) {
|
|
103
|
+
return !settings.excludes.some((selector) => matchesSelector(namespace, selector));
|
|
104
|
+
}
|
|
105
|
+
return settings.includes.some((selector) => matchesSelector(namespace, selector));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Default namespace settings.
|
|
109
|
+
*/
|
|
110
|
+
export const defaultNamespaceSettings = {
|
|
111
|
+
includes: [],
|
|
112
|
+
excludes: [],
|
|
113
|
+
defaultLevel: DEFAULT_LEVEL
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Global active namespace settings.
|
|
117
|
+
* Updated from environment or explicit configuration.
|
|
118
|
+
*
|
|
119
|
+
* Initialization is lazy: defaults are used until explicitly configured
|
|
120
|
+
* via updateNamespaceSettings(). The logging-fs plugin initializes
|
|
121
|
+
* settings from the host environment at startup automatically.
|
|
122
|
+
*/
|
|
123
|
+
let activeNamespaceSettings = defaultNamespaceSettings;
|
|
124
|
+
/**
|
|
125
|
+
* Update the active namespace settings.
|
|
126
|
+
*/
|
|
127
|
+
export function updateNamespaceSettings(settings) {
|
|
128
|
+
activeNamespaceSettings = settings;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get the current active namespace settings.
|
|
132
|
+
*/
|
|
133
|
+
export function getNamespaceSettings() {
|
|
134
|
+
return activeNamespaceSettings;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/core/namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/core/parsing.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM1D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAYlE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function parseSize(size) {
|
|
2
|
+
if (!size)
|
|
3
|
+
return 10 * 1024 * 1024;
|
|
4
|
+
const units = { B: 1, KB: 1024, MB: 1024 ** 2, GB: 1024 ** 3 };
|
|
5
|
+
const match = size.match(/^(\d+(?:\.\d+)?)\s*(B|KB|MB|GB)$/i);
|
|
6
|
+
if (!match)
|
|
7
|
+
return 10 * 1024 * 1024;
|
|
8
|
+
return Math.floor(parseFloat(match[1]) * (units[match[2].toUpperCase()] ?? 1));
|
|
9
|
+
}
|
|
10
|
+
export function parseDuration(duration) {
|
|
11
|
+
if (!duration)
|
|
12
|
+
return 7 * 24 * 60 * 60 * 1000;
|
|
13
|
+
const units = {
|
|
14
|
+
s: 1000,
|
|
15
|
+
m: 60 * 1000,
|
|
16
|
+
h: 60 * 60 * 1000,
|
|
17
|
+
d: 24 * 60 * 60 * 1000,
|
|
18
|
+
w: 7 * 24 * 60 * 60 * 1000
|
|
19
|
+
};
|
|
20
|
+
const match = duration.match(/^(\d+)\s*(s|m|h|d|w)$/i);
|
|
21
|
+
if (!match)
|
|
22
|
+
return 7 * 24 * 60 * 60 * 1000;
|
|
23
|
+
return parseInt(match[1], 10) * (units[match[2].toLowerCase()] ?? 1);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=parsing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsing.js","sourceRoot":"","sources":["../../src/core/parsing.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,IAAwB;IACjD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,MAAM,KAAK,GAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;IACvF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAA4B;IACzD,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9C,MAAM,KAAK,GAA2B;QACrC,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,EAAE,GAAG,IAAI;QACZ,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACjB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QACtB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;KAC1B,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Logger Types
|
|
3
|
+
*
|
|
4
|
+
* Interfaces for logger instances and factories.
|
|
5
|
+
*/
|
|
6
|
+
import type { LogLevel, LogContext, LoggerChildOptions, RequestLogContext, JobLogContext, PerformanceTracker, PerformanceTrackerParams } from '../schemas/entry.ts';
|
|
7
|
+
import type { SinkImplementation } from '../kinds/sink.ts';
|
|
8
|
+
/**
|
|
9
|
+
* Base logger interface.
|
|
10
|
+
*/
|
|
11
|
+
export interface Logger {
|
|
12
|
+
debug(message: string, context?: unknown): void;
|
|
13
|
+
info(message: string, context?: unknown): void;
|
|
14
|
+
warn(message: string, context?: unknown): void;
|
|
15
|
+
error(message: string, context?: unknown): void;
|
|
16
|
+
child?(options: LoggerChildOptions): Logger;
|
|
17
|
+
namespace?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Extended runtime logger with context helpers.
|
|
21
|
+
*/
|
|
22
|
+
export interface RuntimeLogger extends Logger {
|
|
23
|
+
/** Create a child logger with additional context */
|
|
24
|
+
child(options: LoggerChildOptions): RuntimeLogger;
|
|
25
|
+
/** Add arbitrary context to this logger */
|
|
26
|
+
withContext(context: LogContext): RuntimeLogger;
|
|
27
|
+
/** Add request-specific context */
|
|
28
|
+
withRequestContext(context: RequestLogContext): RuntimeLogger;
|
|
29
|
+
/** Add job-specific context */
|
|
30
|
+
withJobContext(context: JobLogContext): RuntimeLogger;
|
|
31
|
+
/** Create a performance tracker for timing operations */
|
|
32
|
+
performanceTracker(params: PerformanceTrackerParams): PerformanceTracker;
|
|
33
|
+
/** Logger namespace */
|
|
34
|
+
namespace: string;
|
|
35
|
+
/** Full namespace path (including parent namespaces) */
|
|
36
|
+
fullNamespace: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Runtime type identifier.
|
|
40
|
+
*/
|
|
41
|
+
export type Runtime = 'server' | 'cli' | 'worker' | 'browser' | 'mcp';
|
|
42
|
+
/**
|
|
43
|
+
* Options for creating a runtime logger.
|
|
44
|
+
*/
|
|
45
|
+
export interface RuntimeLoggerOptions {
|
|
46
|
+
/** Base namespace (e.g., 'vibes', 'pm') */
|
|
47
|
+
namespace: string;
|
|
48
|
+
/** Runtime environment */
|
|
49
|
+
runtime?: Runtime;
|
|
50
|
+
/** Override default log level */
|
|
51
|
+
level?: LogLevel;
|
|
52
|
+
/** Static metadata added to all entries */
|
|
53
|
+
staticMetadata?: LogContext;
|
|
54
|
+
/** Custom sink IDs for runtime resolution */
|
|
55
|
+
sinks?: string[];
|
|
56
|
+
/** Direct sink implementations (bypasses runtime resolution) */
|
|
57
|
+
sinkImpls?: SinkImplementation[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Internal logger configuration.
|
|
61
|
+
*/
|
|
62
|
+
export interface RuntimeLoggerConfig {
|
|
63
|
+
namespace: string;
|
|
64
|
+
fullNamespace: string;
|
|
65
|
+
runtime: Runtime;
|
|
66
|
+
staticMetadata: LogContext;
|
|
67
|
+
sinkIds: string[];
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC5C,oDAAoD;IACpD,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAAC;IAClD,2CAA2C;IAC3C,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,aAAa,CAAC;IAChD,mCAAmC;IACnC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC;IAC9D,+BAA+B;IAC/B,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC;IACtD,yDAAyD;IACzD,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAAC;IACzE,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,UAAU,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/levels.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,mBAmVjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'docs/topic',
|
|
3
|
+
id: 'logging.levels',
|
|
4
|
+
title: 'Log Levels',
|
|
5
|
+
summary: 'Log levels (debug, info, warn, error) and filtering',
|
|
6
|
+
body: {
|
|
7
|
+
type: 'markdown',
|
|
8
|
+
sourceType: 'raw',
|
|
9
|
+
source: `---
|
|
10
|
+
title: Log Levels
|
|
11
|
+
summary: Log levels (debug, info, warn, error) and filtering
|
|
12
|
+
tags: [logging, levels, debug, info, warn, error, filtering]
|
|
13
|
+
parent: logging
|
|
14
|
+
order: 1
|
|
15
|
+
surfaces: [cli, web, in-app]
|
|
16
|
+
hardware: [consumer, cloud]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Log Levels
|
|
20
|
+
|
|
21
|
+
Log levels categorize log entries by severity. The logging system provides five standard levels with automatic filtering based on configuration.
|
|
22
|
+
|
|
23
|
+
## Level Hierarchy
|
|
24
|
+
|
|
25
|
+
\`\`\`
|
|
26
|
+
trace < debug < info < warn < error
|
|
27
|
+
\`\`\`
|
|
28
|
+
|
|
29
|
+
Each level includes all levels above it. Setting level to \`warn\` logs \`warn\` and \`error\` only.
|
|
30
|
+
|
|
31
|
+
## Level Definitions
|
|
32
|
+
|
|
33
|
+
### Trace (0)
|
|
34
|
+
|
|
35
|
+
Fine-grained debugging information:
|
|
36
|
+
|
|
37
|
+
\`\`\`ts
|
|
38
|
+
logger.trace('Entering function', { fn: 'processUser', userId: '123' });
|
|
39
|
+
\`\`\`
|
|
40
|
+
|
|
41
|
+
**Use for:**
|
|
42
|
+
- Function entry/exit
|
|
43
|
+
- Variable values during debugging
|
|
44
|
+
- Detailed execution flow
|
|
45
|
+
|
|
46
|
+
**Typical output:**
|
|
47
|
+
\`\`\`
|
|
48
|
+
[TRACE] [app:user] Entering function {"fn":"processUser","userId":"123"}
|
|
49
|
+
\`\`\`
|
|
50
|
+
|
|
51
|
+
### Debug (1)
|
|
52
|
+
|
|
53
|
+
Debugging information for development:
|
|
54
|
+
|
|
55
|
+
\`\`\`ts
|
|
56
|
+
logger.debug('Database query executed', {
|
|
57
|
+
query: 'SELECT * FROM users',
|
|
58
|
+
duration: 45
|
|
59
|
+
});
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
**Use for:**
|
|
63
|
+
- SQL queries
|
|
64
|
+
- API requests
|
|
65
|
+
- Configuration values
|
|
66
|
+
- Performance metrics
|
|
67
|
+
|
|
68
|
+
**Typical output:**
|
|
69
|
+
\`\`\`
|
|
70
|
+
[DEBUG] [app:db] Database query executed {"query":"SELECT * FROM users","duration":45}
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
### Info (2)
|
|
74
|
+
|
|
75
|
+
General informational messages:
|
|
76
|
+
|
|
77
|
+
\`\`\`ts
|
|
78
|
+
logger.info('Server started', {
|
|
79
|
+
port: 3000,
|
|
80
|
+
environment: 'development'
|
|
81
|
+
});
|
|
82
|
+
\`\`\`
|
|
83
|
+
|
|
84
|
+
**Use for:**
|
|
85
|
+
- Application lifecycle events
|
|
86
|
+
- User actions (login, logout)
|
|
87
|
+
- System state changes
|
|
88
|
+
- Successful operations
|
|
89
|
+
|
|
90
|
+
**Typical output:**
|
|
91
|
+
\`\`\`
|
|
92
|
+
[INFO] [app:server] Server started {"port":3000,"environment":"development"}
|
|
93
|
+
\`\`\`
|
|
94
|
+
|
|
95
|
+
### Warn (3)
|
|
96
|
+
|
|
97
|
+
Warning conditions:
|
|
98
|
+
|
|
99
|
+
\`\`\`ts
|
|
100
|
+
logger.warn('High memory usage detected', {
|
|
101
|
+
usage: '85%',
|
|
102
|
+
threshold: '80%'
|
|
103
|
+
});
|
|
104
|
+
\`\`\`
|
|
105
|
+
|
|
106
|
+
**Use for:**
|
|
107
|
+
- Resource warnings
|
|
108
|
+
- Deprecated API usage
|
|
109
|
+
- Recoverable errors
|
|
110
|
+
- Performance degradation
|
|
111
|
+
|
|
112
|
+
**Typical output:**
|
|
113
|
+
\`\`\`
|
|
114
|
+
[WARN] [app:monitor] High memory usage detected {"usage":"85%","threshold":"80%"}
|
|
115
|
+
\`\`\`
|
|
116
|
+
|
|
117
|
+
### Error (4)
|
|
118
|
+
|
|
119
|
+
Error conditions:
|
|
120
|
+
|
|
121
|
+
\`\`\`ts
|
|
122
|
+
logger.error('Database connection failed', {
|
|
123
|
+
error: error.message,
|
|
124
|
+
host: config.db.host
|
|
125
|
+
});
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
**Use for:**
|
|
129
|
+
- Unhandled exceptions
|
|
130
|
+
- Failed operations
|
|
131
|
+
- System errors
|
|
132
|
+
- External service failures
|
|
133
|
+
|
|
134
|
+
**Typical output:**
|
|
135
|
+
\`\`\`
|
|
136
|
+
[ERROR] [app:db] Database connection failed {"error":"ECONNREFUSED","host":"localhost"}
|
|
137
|
+
\`\`\`
|
|
138
|
+
|
|
139
|
+
## Setting Log Level
|
|
140
|
+
|
|
141
|
+
### Environment Variable
|
|
142
|
+
|
|
143
|
+
\`\`\`bash
|
|
144
|
+
# Set minimum level
|
|
145
|
+
export LOG_LEVEL=debug
|
|
146
|
+
|
|
147
|
+
# Levels: trace, debug, info, warn, error
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
### Programmatic Configuration
|
|
151
|
+
|
|
152
|
+
\`\`\`ts
|
|
153
|
+
import { logger } from '@vibesdotdev/logging';
|
|
154
|
+
|
|
155
|
+
logger.setLevel('debug');
|
|
156
|
+
|
|
157
|
+
// Only debug, info, warn, error will be logged
|
|
158
|
+
// trace will be filtered out
|
|
159
|
+
\`\`\`
|
|
160
|
+
|
|
161
|
+
### Config Manifest
|
|
162
|
+
|
|
163
|
+
\`\`\`ts
|
|
164
|
+
const loggingConfig = await runtime.query('config/manifest')
|
|
165
|
+
.filter(d => d.id === 'logging')
|
|
166
|
+
.resolve();
|
|
167
|
+
|
|
168
|
+
const config = await loggingConfig.loadWithDefaults(context);
|
|
169
|
+
|
|
170
|
+
console.log(config.level); // 'info'
|
|
171
|
+
\`\`\`
|
|
172
|
+
|
|
173
|
+
## Level Filtering
|
|
174
|
+
|
|
175
|
+
### Filter by Level
|
|
176
|
+
|
|
177
|
+
\`\`\`ts
|
|
178
|
+
logger.setLevel('warn');
|
|
179
|
+
|
|
180
|
+
logger.trace('Will NOT be logged'); // filtered
|
|
181
|
+
logger.debug('Will NOT be logged'); // filtered
|
|
182
|
+
logger.info('Will NOT be logged'); // filtered
|
|
183
|
+
logger.warn('Will be logged'); // ✓
|
|
184
|
+
logger.error('Will be logged'); // ✓
|
|
185
|
+
\`\`\`
|
|
186
|
+
|
|
187
|
+
### Filter by Namespace
|
|
188
|
+
|
|
189
|
+
\`\`\`ts
|
|
190
|
+
import { createLogger } from '@vibesdotdev/logging';
|
|
191
|
+
|
|
192
|
+
// Create logger with namespace
|
|
193
|
+
const dbLogger = createLogger('app:db');
|
|
194
|
+
const authLogger = createLogger('app:auth');
|
|
195
|
+
|
|
196
|
+
dbLogger.setLevel('debug');
|
|
197
|
+
authLogger.setLevel('error');
|
|
198
|
+
|
|
199
|
+
dbLogger.debug('Query executed'); // logged
|
|
200
|
+
authLogger.debug('Token validated'); // filtered
|
|
201
|
+
\`\`\`
|
|
202
|
+
|
|
203
|
+
### Filter by Context
|
|
204
|
+
|
|
205
|
+
\`\`\`ts
|
|
206
|
+
logger.debug('Debug message', {
|
|
207
|
+
context: {
|
|
208
|
+
userId: '123',
|
|
209
|
+
requestId: 'req-456'
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// Output includes context
|
|
214
|
+
// [DEBUG] [app] Debug message {"userId":"123","requestId":"req-456"}
|
|
215
|
+
\`\`\`
|
|
216
|
+
|
|
217
|
+
## Namespace Patterns
|
|
218
|
+
|
|
219
|
+
### Namespace Hierarchy
|
|
220
|
+
|
|
221
|
+
\`\`\`ts
|
|
222
|
+
// Namespace structure
|
|
223
|
+
app:server
|
|
224
|
+
app:database
|
|
225
|
+
app:auth
|
|
226
|
+
app:api:users
|
|
227
|
+
app:api:posts
|
|
228
|
+
|
|
229
|
+
// Set level for namespace pattern
|
|
230
|
+
logger.setLevel('app:api:*', 'debug'); // All API logs
|
|
231
|
+
\`\`\`
|
|
232
|
+
|
|
233
|
+
### Wildcard Patterns
|
|
234
|
+
|
|
235
|
+
\`\`\`ts
|
|
236
|
+
// Wildcard matching
|
|
237
|
+
logger.setLevel('app:*', 'info'); // All app logs
|
|
238
|
+
logger.setLevel('app:api:*', 'debug'); // All API logs
|
|
239
|
+
logger.setLevel('*', 'warn'); // All logs
|
|
240
|
+
\`\`\`
|
|
241
|
+
|
|
242
|
+
## Level-Specific Methods
|
|
243
|
+
|
|
244
|
+
### Convenience Methods
|
|
245
|
+
|
|
246
|
+
\`\`\`ts
|
|
247
|
+
logger.trace('Trace message');
|
|
248
|
+
logger.debug('Debug message');
|
|
249
|
+
logger.info('Info message');
|
|
250
|
+
logger.warn('Warning message');
|
|
251
|
+
logger.error('Error message');
|
|
252
|
+
\`\`\`
|
|
253
|
+
|
|
254
|
+
### Structured Logging
|
|
255
|
+
|
|
256
|
+
\`\`\`ts
|
|
257
|
+
logger.info('User logged in', {
|
|
258
|
+
userId: '123',
|
|
259
|
+
email: 'user@example.com',
|
|
260
|
+
timestamp: new Date().toISOString()
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
logger.error('Payment failed', {
|
|
264
|
+
userId: '123',
|
|
265
|
+
amount: 99.99,
|
|
266
|
+
error: 'Insufficient funds',
|
|
267
|
+
code: 'PAYMENT_FAILED'
|
|
268
|
+
});
|
|
269
|
+
\`\`\`
|
|
270
|
+
|
|
271
|
+
## Conditional Logging
|
|
272
|
+
|
|
273
|
+
### Level Guards
|
|
274
|
+
|
|
275
|
+
\`\`\`ts
|
|
276
|
+
if (logger.isLevelEnabled('debug')) {
|
|
277
|
+
// Expensive operation only if debug logging enabled
|
|
278
|
+
const debugData = computeExpensiveDebugData();
|
|
279
|
+
logger.debug('Debug info', debugData);
|
|
280
|
+
}
|
|
281
|
+
\`\`\`
|
|
282
|
+
|
|
283
|
+
### Dynamic Level Changes
|
|
284
|
+
|
|
285
|
+
\`\`\`ts
|
|
286
|
+
// Temporarily increase verbosity
|
|
287
|
+
const previousLevel = logger.getLevel();
|
|
288
|
+
logger.setLevel('trace');
|
|
289
|
+
|
|
290
|
+
// ... debug-heavy operation ...
|
|
291
|
+
|
|
292
|
+
logger.setLevel(previousLevel); // restore
|
|
293
|
+
\`\`\`
|
|
294
|
+
|
|
295
|
+
## Audit Logging
|
|
296
|
+
|
|
297
|
+
Audit logs use special level handling:
|
|
298
|
+
|
|
299
|
+
\`\`\`ts
|
|
300
|
+
import { auditLogger } from '@vibesdotdev/logging';
|
|
301
|
+
|
|
302
|
+
// Audit logs always logged regardless of level
|
|
303
|
+
auditLogger.authentication({
|
|
304
|
+
userId: '123',
|
|
305
|
+
action: 'login',
|
|
306
|
+
success: true,
|
|
307
|
+
ipAddress: '192.168.1.1'
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
auditLogger.authorization({
|
|
311
|
+
userId: '123',
|
|
312
|
+
resource: 'users/456',
|
|
313
|
+
action: 'delete',
|
|
314
|
+
allowed: false
|
|
315
|
+
});
|
|
316
|
+
\`\`\`
|
|
317
|
+
|
|
318
|
+
## Best Practices
|
|
319
|
+
|
|
320
|
+
1. **Use appropriate levels** — Don't log everything as error
|
|
321
|
+
2. **Include context** — Help debugging with relevant data
|
|
322
|
+
3. **Avoid sensitive data** — Never log passwords, tokens, PII
|
|
323
|
+
4. **Consistent namespaces** — Use hierarchical naming
|
|
324
|
+
5. **Production level** — Typically 'info' or 'warn'
|
|
325
|
+
6. **Development level** — Typically 'debug'
|
|
326
|
+
|
|
327
|
+
:::card{title="See also"}
|
|
328
|
+
- [\`logging.transports\`](logging.transports) — Transport layers
|
|
329
|
+
- [\`logging.structured\`](logging.structured) — Structured logging
|
|
330
|
+
- [\`config.environment\`](config.environment) — Environment configuration
|
|
331
|
+
:::
|
|
332
|
+
`
|
|
333
|
+
},
|
|
334
|
+
parent: 'logging',
|
|
335
|
+
order: 1,
|
|
336
|
+
tags: ['logging', 'levels', 'debug', 'info', 'warn', 'error', 'filtering'],
|
|
337
|
+
surfaces: ['cli', 'web', 'in-app'],
|
|
338
|
+
hardware: ['consumer', 'cloud'],
|
|
339
|
+
enabled: true
|
|
340
|
+
};
|
|
341
|
+
export default descriptor;
|
|
342
|
+
//# sourceMappingURL=levels.docs.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levels.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/levels.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,gBAAgB;IACpB,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,qDAAqD;IAC9D,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmUT;KACC;IACD,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;IAC1E,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":"structured.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/structured.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,mBAubjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|