@mks2508/better-logger 0.0.2-alpha.2 → 0.3.0
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/.claude/settings.local.json +18 -2
- package/.github/workflows/ci-quality.yml +357 -0
- package/.github/workflows/docs-demo.yml +119 -0
- package/.github/workflows/releases-core.yml +512 -0
- package/.github/workflows/releases-full.yml +582 -0
- package/.github/{workflows → workflows-backup}/ci.yml +12 -110
- package/.github/workflows-backup/nightly.yml +196 -0
- package/.github/workflows-backup/release-optimized.yml +373 -0
- package/.release-notes-0.2.0.md +129 -0
- package/.yamllint +28 -0
- package/CHANGELOG.json +783 -0
- package/CLAUDE.md +92 -1
- package/README.md +198 -490
- package/bun.lock +323 -0
- package/demo.html +9 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/Logger.d.ts +272 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +680 -0
- package/dist/ScopedLogger.d.ts +126 -0
- package/dist/ScopedLogger.d.ts.map +1 -0
- package/dist/ScopedLogger.js +234 -0
- package/dist/chunks/Logger-BpeuYIxR.js +2 -0
- package/dist/chunks/Logger-BpeuYIxR.js.map +1 -0
- package/dist/chunks/Logger-Didxtr23.js +3275 -0
- package/dist/chunks/Logger-Didxtr23.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
- package/dist/chunks/environment-Bxbnw4pd.js +544 -0
- package/dist/chunks/environment-Bxbnw4pd.js.map +1 -0
- package/dist/chunks/environment-Dm66zOML.js +4 -0
- package/dist/chunks/environment-Dm66zOML.js.map +1 -0
- package/dist/chunks/formatting-C0riPC5_.js +95 -0
- package/dist/chunks/formatting-C0riPC5_.js.map +1 -0
- package/dist/chunks/formatting-DNCAV66-.js +2 -0
- package/dist/chunks/formatting-DNCAV66-.js.map +1 -0
- package/dist/cli/CommandProcessor.d.ts +103 -0
- package/dist/cli/CommandProcessor.d.ts.map +1 -0
- package/dist/cli/CommandProcessor.js +184 -0
- package/dist/cli/commands/ConfigCommand.d.ts +17 -0
- package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/cli/commands/ConfigCommand.js +88 -0
- package/dist/cli/commands/ExportCommand.d.ts +51 -0
- package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
- package/dist/cli/commands/ExportCommand.js +243 -0
- package/dist/cli/commands/HistoryCommand.d.ts +50 -0
- package/dist/cli/commands/HistoryCommand.d.ts.map +1 -0
- package/dist/cli/commands/HistoryCommand.js +96 -0
- package/dist/cli/commands/StatusCommand.d.ts +33 -0
- package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
- package/dist/cli/commands/StatusCommand.js +93 -0
- package/dist/cli/commands/ThemeCommand.d.ts +33 -0
- package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
- package/dist/cli/commands/ThemeCommand.js +79 -0
- package/dist/cli/help.d.ts +15 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +118 -0
- package/dist/cli/index.d.ts +15 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +46 -0
- package/dist/constants.d.ts +122 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +159 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +134 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +315 -242
- package/dist/core.js.map +1 -1
- package/dist/example.d.ts +18 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +154 -0
- package/dist/exports-module.d.ts +203 -0
- package/dist/exports-module.d.ts.map +1 -0
- package/dist/exports-module.js +260 -0
- package/dist/exports.cjs +1 -1
- package/dist/exports.cjs.map +1 -1
- package/dist/exports.js +5 -4
- package/dist/exports.js.map +1 -1
- package/dist/handlers/AnalyticsLogHandler.d.ts +11 -0
- package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
- package/dist/handlers/AnalyticsLogHandler.js +19 -0
- package/dist/handlers/ExportLogHandler.d.ts +103 -0
- package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
- package/dist/handlers/ExportLogHandler.js +516 -0
- package/dist/handlers/FileLogHandler.d.ts +36 -0
- package/dist/handlers/FileLogHandler.d.ts.map +1 -0
- package/dist/handlers/FileLogHandler.js +156 -0
- package/dist/handlers/RemoteLogHandler.d.ts +14 -0
- package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
- package/dist/handlers/RemoteLogHandler.js +37 -0
- package/dist/handlers/index.d.ts +8 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +7 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -103
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +139 -0
- package/dist/styling/LogStyleBuilder.d.ts +149 -0
- package/dist/styling/LogStyleBuilder.d.ts.map +1 -0
- package/dist/styling/LogStyleBuilder.js +289 -0
- package/dist/styling/SemanticStyles.d.ts +181 -0
- package/dist/styling/SemanticStyles.d.ts.map +1 -0
- package/dist/styling/SemanticStyles.js +339 -0
- package/dist/styling/SmartPresets.d.ts +25 -0
- package/dist/styling/SmartPresets.d.ts.map +1 -0
- package/dist/styling/SmartPresets.js +276 -0
- package/dist/styling/StyleBuilder.d.ts +140 -0
- package/dist/styling/StyleBuilder.d.ts.map +1 -0
- package/dist/styling/StyleBuilder.js +280 -0
- package/dist/styling/banners.d.ts +45 -0
- package/dist/styling/banners.d.ts.map +1 -0
- package/dist/styling/banners.js +155 -0
- package/dist/styling/index.d.ts +10 -0
- package/dist/styling/index.d.ts.map +1 -0
- package/dist/styling/index.js +9 -0
- package/dist/styling/themes.d.ts +10 -0
- package/dist/styling/themes.d.ts.map +1 -0
- package/dist/styling/themes.js +231 -0
- package/dist/styling-module.d.ts +185 -0
- package/dist/styling-module.d.ts.map +1 -0
- package/dist/styling-module.js +199 -0
- package/dist/styling.cjs +1 -1
- package/dist/styling.cjs.map +1 -1
- package/dist/styling.js +6 -6
- package/dist/styling.js.map +1 -1
- package/dist/types/Logger.d.ts +268 -0
- package/dist/types/Logger.d.ts.map +1 -0
- package/dist/types/ScopedLogger.d.ts +123 -0
- package/dist/types/ScopedLogger.d.ts.map +1 -0
- package/dist/types/cli/CommandProcessor.d.ts +100 -0
- package/dist/types/cli/CommandProcessor.d.ts.map +1 -0
- package/dist/types/cli/commands/ConfigCommand.d.ts +14 -0
- package/dist/types/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/ExportCommand.d.ts +48 -0
- package/dist/types/cli/commands/ExportCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/HistoryCommand.d.ts +47 -0
- package/dist/types/cli/commands/HistoryCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/StatusCommand.d.ts +30 -0
- package/dist/types/cli/commands/StatusCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/ThemeCommand.d.ts +30 -0
- package/dist/types/cli/commands/ThemeCommand.d.ts.map +1 -0
- package/dist/types/cli/help.d.ts +12 -0
- package/dist/types/cli/help.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +15 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/constants.d.ts +119 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/core.d.ts +125 -211
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +13 -0
- package/dist/types/example.d.ts +18 -0
- package/dist/types/example.d.ts.map +1 -0
- package/dist/types/exports-module.d.ts +196 -0
- package/dist/types/exports-module.d.ts.map +1 -0
- package/dist/types/handlers/AnalyticsLogHandler.d.ts +8 -0
- package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/ExportLogHandler.d.ts +100 -0
- package/dist/types/handlers/ExportLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/FileLogHandler.d.ts +33 -0
- package/dist/types/handlers/FileLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/RemoteLogHandler.d.ts +11 -0
- package/dist/types/handlers/RemoteLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/index.d.ts +8 -0
- package/dist/types/handlers/index.d.ts.map +1 -0
- package/dist/types/handlers.d.ts +88 -0
- package/dist/types/handlers.d.ts.map +1 -0
- package/dist/types/handlers.js +4 -0
- package/dist/types/index.d.ts +7 -675
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/main.d.ts +2 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/styling/LogStyleBuilder.d.ts +146 -0
- package/dist/types/styling/LogStyleBuilder.d.ts.map +1 -0
- package/dist/types/styling/SemanticStyles.d.ts +178 -0
- package/dist/types/styling/SemanticStyles.d.ts.map +1 -0
- package/dist/types/styling/SmartPresets.d.ts +22 -0
- package/dist/types/styling/SmartPresets.d.ts.map +1 -0
- package/dist/types/styling/StyleBuilder.d.ts +140 -0
- package/dist/types/styling/StyleBuilder.d.ts.map +1 -0
- package/dist/types/styling/banners.d.ts +42 -0
- package/dist/types/styling/banners.d.ts.map +1 -0
- package/dist/types/styling/index.d.ts +10 -0
- package/dist/types/styling/index.d.ts.map +1 -0
- package/dist/types/styling/themes.d.ts +7 -0
- package/dist/types/styling/themes.d.ts.map +1 -0
- package/dist/types/styling-module.d.ts +178 -0
- package/dist/types/styling-module.d.ts.map +1 -0
- package/dist/types/types/core.d.ts +125 -0
- package/dist/types/types/core.d.ts.map +1 -0
- package/dist/types/types/handlers.d.ts +85 -0
- package/dist/types/types/handlers.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +7 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/environment.d.ts +47 -0
- package/dist/types/utils/environment.d.ts.map +1 -0
- package/dist/types/utils/formatting.d.ts +37 -0
- package/dist/types/utils/formatting.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +7 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/opentui-detection.d.ts +34 -0
- package/dist/types/utils/opentui-detection.d.ts.map +1 -0
- package/dist/types/utils/output.d.ts +41 -0
- package/dist/types/utils/output.d.ts.map +1 -0
- package/dist/types/utils/stackTrace.d.ts +6 -0
- package/dist/types/utils/stackTrace.d.ts.map +1 -0
- package/dist/types/utils/timestamps.d.ts +20 -0
- package/dist/types/utils/timestamps.d.ts.map +1 -0
- package/dist/utils/environment.d.ts +47 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +85 -0
- package/dist/utils/formatting.d.ts +40 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +117 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/opentui-detection.d.ts +34 -0
- package/dist/utils/opentui-detection.d.ts.map +1 -0
- package/dist/utils/opentui-detection.js +116 -0
- package/dist/utils/output.d.ts +44 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +150 -0
- package/dist/utils/stackTrace.d.ts +9 -0
- package/dist/utils/stackTrace.d.ts.map +1 -0
- package/dist/utils/stackTrace.js +81 -0
- package/dist/utils/timestamps.d.ts +20 -0
- package/dist/utils/timestamps.d.ts.map +1 -0
- package/dist/utils/timestamps.js +71 -0
- package/docs/API.md +691 -0
- package/docs/CORE.md +10 -10
- package/docs/DEVELOPMENT.md +731 -0
- package/docs/PACKAGES.md +244 -0
- package/docs/_config.yml +36 -0
- package/docs/index.md +179 -0
- package/examples/README.md +208 -0
- package/examples/basic-logging.js +75 -0
- package/examples/data-export.js +234 -0
- package/examples/package.json +16 -0
- package/examples/performance-timing.js +170 -0
- package/examples/simplified-api.js +124 -0
- package/examples/styling-themes.js +207 -0
- package/package.json +37 -21
- package/packages/core/package.json +57 -0
- package/packages/exports/package.json +41 -0
- package/packages/nodejs-opentui/README.md +232 -0
- package/packages/nodejs-opentui/package.json +72 -0
- package/packages/nodejs-opentui/src/LogRenderer.ts +171 -0
- package/packages/nodejs-opentui/src/OpenTUILogHandler.ts +178 -0
- package/packages/nodejs-opentui/src/components/LogBadge.tsx +131 -0
- package/packages/nodejs-opentui/src/index.ts +133 -0
- package/packages/nodejs-opentui/src/types.ts +158 -0
- package/packages/nodejs-opentui/tsconfig.json +20 -0
- package/packages/styling/package.json +41 -0
- package/project-utils/README.md +172 -0
- package/project-utils/auto-release-gemini.ts +1193 -0
- package/project-utils/auto-release-ui.ts +1329 -0
- package/project-utils/commit-generator.ts +1385 -0
- package/project-utils/commit-ui.ts +264 -0
- package/project-utils/git-utils.ts +199 -0
- package/project-utils/github-release-manager.ts +466 -0
- package/project-utils/project-config.ts +260 -0
- package/project-utils/prompt-templates.js +345 -0
- package/project-utils/prompt-templates.ts +422 -0
- package/project-utils/version-manager.ts +1078 -0
- package/src/Logger.ts +251 -16
- package/src/ScopedLogger.ts +262 -0
- package/src/cli/CommandProcessor.ts +173 -2
- package/src/cli/commands/HistoryCommand.ts +117 -0
- package/src/cli/index.ts +12 -0
- package/src/constants.ts +84 -2
- package/src/core.ts +119 -46
- package/src/example.ts +4 -4
- package/src/exports-module.ts +1 -1
- package/src/handlers/ExportLogHandler.ts +141 -0
- package/src/handlers/FileLogHandler.ts +144 -5
- package/src/index.ts +1 -1
- package/src/main.ts +3 -3
- package/src/styling/LogStyleBuilder.ts +355 -0
- package/src/styling/SemanticStyles.ts +380 -0
- package/src/styling/SmartPresets.ts +288 -0
- package/src/styling/StyleBuilder.ts +14 -0
- package/src/styling/index.ts +16 -1
- package/src/styling-module.ts +1 -1
- package/src/types/core.ts +60 -0
- package/src/types/index.ts +6 -0
- package/src/utils/environment.ts +94 -0
- package/src/utils/formatting.ts +142 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/opentui-detection.ts +138 -0
- package/src/utils/output.ts +66 -8
- package/test-core-browser.html +237 -0
- package/test-core-node.js +63 -0
- package/tests/test-conflict-resolution.ts +391 -0
- package/tests/validate-workflows.sh +131 -0
- package/tests/yaml-autofix.sh +146 -0
- package/vite.config.ts +189 -50
- package/.npmrc.bak +0 -1
- package/dist/chunks/Logger-BQhMKy_T.js +0 -2
- package/dist/chunks/Logger-BQhMKy_T.js.map +0 -1
- package/dist/chunks/Logger-BrFKFZcD.js +0 -978
- package/dist/chunks/Logger-BrFKFZcD.js.map +0 -1
- package/dist/chunks/core-2opW4Pi3.js +0 -194
- package/dist/chunks/core-2opW4Pi3.js.map +0 -1
- package/dist/chunks/core-DyugwSYZ.js +0 -4
- package/dist/chunks/core-DyugwSYZ.js.map +0 -1
- package/dist/chunks/exports-BNP3R7dp.js +0 -421
- package/dist/chunks/exports-BNP3R7dp.js.map +0 -1
- package/dist/chunks/exports-U1xLBXrY.js +0 -2
- package/dist/chunks/exports-U1xLBXrY.js.map +0 -1
- package/dist/chunks/styling-DhUDzwlE.js +0 -654
- package/dist/chunks/styling-DhUDzwlE.js.map +0 -1
- package/dist/chunks/styling-tmRDI28D.js +0 -2
- package/dist/chunks/styling-tmRDI28D.js.map +0 -1
- package/dist/types/exports.d.ts +0 -600
- package/dist/types/styling.d.ts +0 -751
- package/src/Logger.ts.backup +0 -1684
- /package/.github/{workflows → workflows-backup}/release.yml +0 -0
package/docs/API.md
ADDED
|
@@ -0,0 +1,691 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
title: API Reference
|
|
4
|
+
permalink: /API/
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🔧 API Reference
|
|
8
|
+
|
|
9
|
+
Complete API documentation for Better Logger with detailed method signatures, parameters, and examples.
|
|
10
|
+
|
|
11
|
+
## Table of Contents
|
|
12
|
+
|
|
13
|
+
- [Core Logger](#core-logger)
|
|
14
|
+
- [Style Builder](#style-builder)
|
|
15
|
+
- [CLI Interface](#cli-interface)
|
|
16
|
+
- [Export & Remote](#export--remote)
|
|
17
|
+
- [Types & Interfaces](#types--interfaces)
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 🚀 Core Logger
|
|
22
|
+
|
|
23
|
+
### Logger Class
|
|
24
|
+
|
|
25
|
+
The main Logger class provides all essential logging functionality.
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { Logger } from '@mks2508/better-logger';
|
|
29
|
+
|
|
30
|
+
const logger = new Logger();
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### Constructor Options
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
interface LoggerOptions {
|
|
37
|
+
prefix?: string; // Default prefix for all log messages
|
|
38
|
+
level?: LogLevel; // Minimum log level to display
|
|
39
|
+
enableStackTrace?: boolean; // Include stack traces in logs
|
|
40
|
+
enablePerformance?: boolean; // Include performance timings
|
|
41
|
+
theme?: ThemeName; // Visual theme for styling
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### Log Levels
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'critical';
|
|
49
|
+
|
|
50
|
+
// Log level hierarchy (higher numbers = higher priority)
|
|
51
|
+
const LOG_LEVELS = {
|
|
52
|
+
debug: 0,
|
|
53
|
+
info: 1,
|
|
54
|
+
warn: 2,
|
|
55
|
+
error: 3,
|
|
56
|
+
critical: 4
|
|
57
|
+
} as const;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Basic Logging Methods
|
|
61
|
+
|
|
62
|
+
#### `logger.debug(message, ...args)`
|
|
63
|
+
Low-priority debugging information.
|
|
64
|
+
```typescript
|
|
65
|
+
logger.debug('Variable value:', { userId: 123 });
|
|
66
|
+
// Output: [DEBUG] Variable value: { userId: 123 }
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### `logger.info(message, ...args)`
|
|
70
|
+
General informational messages.
|
|
71
|
+
```typescript
|
|
72
|
+
logger.info('User logged in', { username: 'john_doe' });
|
|
73
|
+
// Output: [INFO] User logged in { username: 'john_doe' }
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### `logger.warn(message, ...args)`
|
|
77
|
+
Warning messages for potential issues.
|
|
78
|
+
```typescript
|
|
79
|
+
logger.warn('API rate limit approaching', { remaining: 10 });
|
|
80
|
+
// Output: [WARN] API rate limit approaching { remaining: 10 }
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### `logger.error(message, ...args)`
|
|
84
|
+
Error messages for failures.
|
|
85
|
+
```typescript
|
|
86
|
+
logger.error('Database connection failed', { error: 'ECONNREFUSED' });
|
|
87
|
+
// Output: [ERROR] Database connection failed { error: 'ECONNREFUSED' }
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### `logger.critical(message, ...args)`
|
|
91
|
+
Critical system failures requiring immediate attention.
|
|
92
|
+
```typescript
|
|
93
|
+
logger.critical('System memory exhausted', { usage: '95%' });
|
|
94
|
+
// Output: [CRITICAL] System memory exhausted { usage: '95%' }
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Advanced Logging Methods
|
|
98
|
+
|
|
99
|
+
#### `logger.success(message, ...args)`
|
|
100
|
+
Success notifications with green styling.
|
|
101
|
+
```typescript
|
|
102
|
+
logger.success('Payment processed successfully', { orderId: 'ORD-123' });
|
|
103
|
+
// Output: [SUCCESS] Payment processed successfully { orderId: 'ORD-123' }
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
#### `logger.table(data, options?)`
|
|
107
|
+
Display data in formatted table.
|
|
108
|
+
```typescript
|
|
109
|
+
const users = [
|
|
110
|
+
{ id: 1, name: 'John', email: 'john@example.com' },
|
|
111
|
+
{ id: 2, name: 'Jane', email: 'jane@example.com' }
|
|
112
|
+
];
|
|
113
|
+
|
|
114
|
+
logger.table(users);
|
|
115
|
+
// Displays formatted table in console
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### `logger.group(label, callback?)`
|
|
119
|
+
Group related log messages.
|
|
120
|
+
```typescript
|
|
121
|
+
logger.group('User Authentication', () => {
|
|
122
|
+
logger.info('Checking credentials...');
|
|
123
|
+
logger.info('Validating token...');
|
|
124
|
+
logger.success('Authentication successful');
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// Or manual grouping
|
|
128
|
+
logger.group('Database Operations');
|
|
129
|
+
logger.info('Connecting to database...');
|
|
130
|
+
logger.info('Running migration...');
|
|
131
|
+
logger.groupEnd();
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Performance Timing
|
|
135
|
+
|
|
136
|
+
#### `logger.time(label)`
|
|
137
|
+
Start timing operation.
|
|
138
|
+
```typescript
|
|
139
|
+
logger.time('api-call');
|
|
140
|
+
await fetchUserData();
|
|
141
|
+
logger.timeEnd('api-call');
|
|
142
|
+
// Output: [TIMING] api-call: 245.67ms
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
#### `logger.timeEnd(label)`
|
|
146
|
+
End timing and display duration.
|
|
147
|
+
|
|
148
|
+
#### `logger.timeLog(label, ...args)`
|
|
149
|
+
Log intermediate timing without ending timer.
|
|
150
|
+
```typescript
|
|
151
|
+
logger.time('long-operation');
|
|
152
|
+
await step1();
|
|
153
|
+
logger.timeLog('long-operation', 'Step 1 complete');
|
|
154
|
+
await step2();
|
|
155
|
+
logger.timeEnd('long-operation');
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Scoped Loggers
|
|
159
|
+
|
|
160
|
+
Create loggers with persistent prefixes for different modules.
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
const apiLogger = logger.scope('API');
|
|
164
|
+
const dbLogger = logger.scope('DATABASE');
|
|
165
|
+
|
|
166
|
+
apiLogger.info('Making HTTP request'); // [API] [INFO] Making HTTP request
|
|
167
|
+
dbLogger.error('Connection timeout'); // [DATABASE] [ERROR] Connection timeout
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Log Handlers
|
|
171
|
+
|
|
172
|
+
Add custom handlers for log processing.
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
import { FileLogHandler, RemoteLogHandler } from '@mks2508/better-logger';
|
|
176
|
+
|
|
177
|
+
// File logging
|
|
178
|
+
logger.addHandler(new FileLogHandler('/path/to/logs.txt'));
|
|
179
|
+
|
|
180
|
+
// Remote logging
|
|
181
|
+
logger.addHandler(new RemoteLogHandler('https://api.logging-service.com'));
|
|
182
|
+
|
|
183
|
+
// Custom handler
|
|
184
|
+
logger.addHandler({
|
|
185
|
+
handle(entry) {
|
|
186
|
+
// Process log entry
|
|
187
|
+
console.log('Custom handler:', entry);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 🎨 Style Builder
|
|
195
|
+
|
|
196
|
+
Create custom console styles programmatically.
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
import { createStyle, StyleBuilder } from '@mks2508/better-logger/styling';
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Creating Styles
|
|
203
|
+
|
|
204
|
+
#### `createStyle()`
|
|
205
|
+
Returns new StyleBuilder instance.
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
const customStyle = createStyle()
|
|
209
|
+
.bg('linear-gradient(45deg, #ff6b6b, #feca57)')
|
|
210
|
+
.color('white')
|
|
211
|
+
.padding('10px 20px')
|
|
212
|
+
.rounded('8px')
|
|
213
|
+
.bold()
|
|
214
|
+
.build();
|
|
215
|
+
|
|
216
|
+
console.log('%cCustom Message', customStyle);
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### StyleBuilder Methods
|
|
220
|
+
|
|
221
|
+
#### Background Methods
|
|
222
|
+
```typescript
|
|
223
|
+
.bg(gradient: string) // Background gradient
|
|
224
|
+
.backgroundColor(color: string) // Solid background color
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
#### Typography Methods
|
|
228
|
+
```typescript
|
|
229
|
+
.color(color: string) // Text color
|
|
230
|
+
.font(family: string) // Font family
|
|
231
|
+
.fontSize(size: string) // Font size
|
|
232
|
+
.bold() // Bold text
|
|
233
|
+
.italic() // Italic text
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
#### Layout Methods
|
|
237
|
+
```typescript
|
|
238
|
+
.padding(padding: string) // CSS padding
|
|
239
|
+
.margin(margin: string) // CSS margin
|
|
240
|
+
.display(display: string) // CSS display property
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
#### Visual Effects
|
|
244
|
+
```typescript
|
|
245
|
+
.border(border: string) // CSS border
|
|
246
|
+
.rounded(radius: string) // Border radius
|
|
247
|
+
.shadow(shadow: string) // Box shadow
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
#### Animations
|
|
251
|
+
```typescript
|
|
252
|
+
.animation(animation: string) // CSS animation
|
|
253
|
+
.transition(transition: string) // CSS transition
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
#### Custom Properties
|
|
257
|
+
```typescript
|
|
258
|
+
.css(property: string, value: string) // Custom CSS property
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Style Presets
|
|
262
|
+
|
|
263
|
+
Pre-built styles for common use cases.
|
|
264
|
+
|
|
265
|
+
```typescript
|
|
266
|
+
import { stylePresets } from '@mks2508/better-logger/styling';
|
|
267
|
+
|
|
268
|
+
console.log('%c✅ Success!', stylePresets.success);
|
|
269
|
+
console.log('%c❌ Error!', stylePresets.error);
|
|
270
|
+
console.log('%c⚠️ Warning!', stylePresets.warning);
|
|
271
|
+
console.log('%cℹ️ Info', stylePresets.info);
|
|
272
|
+
console.log('%c🎯 Accent', stylePresets.accent);
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 💻 CLI Interface
|
|
278
|
+
|
|
279
|
+
Enhanced interactive command-line interface with plugin support, command history, and intelligent suggestions.
|
|
280
|
+
|
|
281
|
+
### 🔌 Plugin System
|
|
282
|
+
|
|
283
|
+
Extend CLI functionality with custom plugins:
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
import { logger } from '@mks2508/better-logger';
|
|
287
|
+
|
|
288
|
+
// Create a custom plugin
|
|
289
|
+
const analyticsPlugin = {
|
|
290
|
+
name: 'analytics',
|
|
291
|
+
version: '1.0.0',
|
|
292
|
+
description: 'Analytics tracking commands',
|
|
293
|
+
commands: [{
|
|
294
|
+
name: 'track',
|
|
295
|
+
description: 'Track user events',
|
|
296
|
+
usage: '/track <event> <data>',
|
|
297
|
+
category: 'analytics',
|
|
298
|
+
aliases: ['t'],
|
|
299
|
+
execute: (args, logger) => {
|
|
300
|
+
const [event, ...data] = args.split(' ');
|
|
301
|
+
logger.info(`📊 Tracking: ${event}`, data.join(' '));
|
|
302
|
+
}
|
|
303
|
+
}]
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
// Register the plugin
|
|
307
|
+
logger.cliProcessor.registerPlugin(analyticsPlugin, logger);
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### 🌐 Interactive Mode
|
|
311
|
+
|
|
312
|
+
Enter interactive mode for streamlined browser console usage:
|
|
313
|
+
|
|
314
|
+
```typescript
|
|
315
|
+
// Enter interactive mode
|
|
316
|
+
logger.executeCommand('/interactive');
|
|
317
|
+
|
|
318
|
+
// Now use commands directly:
|
|
319
|
+
cli('help'); // Instead of logger.executeCommand('/help')
|
|
320
|
+
cli('theme matrix'); // Change theme interactively
|
|
321
|
+
cli('history 5'); // Show last 5 commands
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### 📋 Enhanced Commands
|
|
325
|
+
|
|
326
|
+
#### Core Commands
|
|
327
|
+
|
|
328
|
+
##### `/help`
|
|
329
|
+
Display help information and available commands.
|
|
330
|
+
```typescript
|
|
331
|
+
logger.executeCommand('/help');
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
##### `/config`
|
|
335
|
+
Show current logger configuration.
|
|
336
|
+
```typescript
|
|
337
|
+
logger.executeCommand('/config');
|
|
338
|
+
// Displays: Theme: default, Level: info, Stack traces: enabled
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
##### `/history [limit]` | Aliases: `/hist`, `/h`
|
|
342
|
+
View command execution history with success/failure status.
|
|
343
|
+
```typescript
|
|
344
|
+
logger.executeCommand('/history 10'); // Show last 10 commands
|
|
345
|
+
logger.executeCommand('/hist'); // Show default (10) recent commands
|
|
346
|
+
// ✅ [14:32:15] /theme matrix
|
|
347
|
+
// ❌ [14:31:45] /invalid-command
|
|
348
|
+
// ✅ [14:30:22] /export csv
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
##### `/clearhistory` | Aliases: `/clrhist`
|
|
352
|
+
Clear all command history.
|
|
353
|
+
```typescript
|
|
354
|
+
logger.executeCommand('/clearhistory');
|
|
355
|
+
// 🗑️ Command history cleared
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
##### `/interactive` | Aliases: `/i`, `/repl`
|
|
359
|
+
Enter interactive CLI mode for browser console.
|
|
360
|
+
```typescript
|
|
361
|
+
logger.executeCommand('/interactive');
|
|
362
|
+
// 🔧 Interactive CLI mode activated. Type /exit to quit, /help for commands.
|
|
363
|
+
// 💡 Use cli("command") to execute CLI commands in browser console.
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
##### `/plugins` | Aliases: `/plug`
|
|
367
|
+
List all registered plugins and their commands.
|
|
368
|
+
```typescript
|
|
369
|
+
logger.executeCommand('/plugins');
|
|
370
|
+
// 🔌 Loaded plugins (2):
|
|
371
|
+
// 📦 analytics v1.0.0 - Analytics tracking commands
|
|
372
|
+
// Commands: track, event
|
|
373
|
+
// 📦 performance v2.1.0 - Performance monitoring tools
|
|
374
|
+
// Commands: benchmark, profile
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
#### `/theme [name]`
|
|
378
|
+
Change visual theme.
|
|
379
|
+
```typescript
|
|
380
|
+
/theme cyberpunk
|
|
381
|
+
// Switches to cyberpunk theme with purple/pink colors
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Available themes: `default`, `dark`, `neon`, `cyberpunk`, `retro`
|
|
385
|
+
|
|
386
|
+
#### `/banner [type]`
|
|
387
|
+
Set banner display type.
|
|
388
|
+
```typescript
|
|
389
|
+
/banner animated
|
|
390
|
+
// Shows animated gradient banner
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
Banner types: `simple`, `ascii`, `unicode`, `svg`, `animated`
|
|
394
|
+
|
|
395
|
+
#### `/clear`
|
|
396
|
+
Clear console and reset log buffer.
|
|
397
|
+
|
|
398
|
+
#### `/export [format]`
|
|
399
|
+
Export logs in specified format.
|
|
400
|
+
```typescript
|
|
401
|
+
/export json
|
|
402
|
+
// Exports current logs as JSON
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
#### `/status`
|
|
406
|
+
Show logger status and statistics.
|
|
407
|
+
|
|
408
|
+
#### `/enumerate`
|
|
409
|
+
List all available features and capabilities.
|
|
410
|
+
|
|
411
|
+
### CLI Integration
|
|
412
|
+
|
|
413
|
+
```typescript
|
|
414
|
+
import { initializeCLI } from '@mks2508/better-logger/cli';
|
|
415
|
+
|
|
416
|
+
// Initialize CLI with logger instance
|
|
417
|
+
initializeCLI(logger);
|
|
418
|
+
|
|
419
|
+
// CLI commands are now available in console
|
|
420
|
+
// Type /help to see available commands
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## 📤 Export & Remote
|
|
426
|
+
|
|
427
|
+
Data export and remote logging capabilities.
|
|
428
|
+
|
|
429
|
+
```typescript
|
|
430
|
+
import { ExportLogger } from '@mks2508/better-logger/exports';
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### ExportLogger Class
|
|
434
|
+
|
|
435
|
+
Extended logger with export and remote capabilities.
|
|
436
|
+
|
|
437
|
+
```typescript
|
|
438
|
+
const logger = new ExportLogger({
|
|
439
|
+
bufferSize: 1000,
|
|
440
|
+
remoteBatch: {
|
|
441
|
+
size: 10,
|
|
442
|
+
interval: 5000
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
#### Constructor Options
|
|
448
|
+
```typescript
|
|
449
|
+
interface ExportLoggerConfig {
|
|
450
|
+
bufferSize?: number; // Log buffer size
|
|
451
|
+
bufferMode?: 'circular' | 'grow'; // Buffer behavior
|
|
452
|
+
persistBuffer?: boolean; // Save to localStorage
|
|
453
|
+
remoteBatch?: { // Remote batching config
|
|
454
|
+
size: number;
|
|
455
|
+
interval: number;
|
|
456
|
+
maxWait: number;
|
|
457
|
+
};
|
|
458
|
+
autoExport?: { // Auto-export settings
|
|
459
|
+
format: ExportFormat;
|
|
460
|
+
trigger: 'size' | 'time' | 'level';
|
|
461
|
+
threshold: number;
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### Export Methods
|
|
467
|
+
|
|
468
|
+
#### `exportLogs(format, options?)`
|
|
469
|
+
Export logs in specified format.
|
|
470
|
+
|
|
471
|
+
```typescript
|
|
472
|
+
// Export as CSV
|
|
473
|
+
const csvData = await logger.exportLogs('csv', {
|
|
474
|
+
filter: { level: 'error' },
|
|
475
|
+
limit: 100
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
// Export as JSON with grouping
|
|
479
|
+
const jsonData = await logger.exportLogs('json', {
|
|
480
|
+
groupBy: 'level',
|
|
481
|
+
includeStackTrace: true
|
|
482
|
+
});
|
|
483
|
+
|
|
484
|
+
// Export as XML
|
|
485
|
+
const xmlData = await logger.exportLogs('xml');
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
#### Export Options
|
|
489
|
+
```typescript
|
|
490
|
+
interface ExportOptions {
|
|
491
|
+
filter?: {
|
|
492
|
+
level?: LogLevel | LogLevel[];
|
|
493
|
+
from?: Date | string;
|
|
494
|
+
to?: Date | string;
|
|
495
|
+
prefix?: string | string[];
|
|
496
|
+
content?: string;
|
|
497
|
+
};
|
|
498
|
+
limit?: number;
|
|
499
|
+
groupBy?: 'level' | 'prefix' | 'date';
|
|
500
|
+
includeStackTrace?: boolean;
|
|
501
|
+
minimal?: boolean;
|
|
502
|
+
}
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
### Remote Logging
|
|
506
|
+
|
|
507
|
+
#### `addRemoteHandler(url, options?)`
|
|
508
|
+
Add remote logging endpoint.
|
|
509
|
+
|
|
510
|
+
```typescript
|
|
511
|
+
// HTTP endpoint
|
|
512
|
+
logger.addRemoteHandler('https://api.logs.com/collect', {
|
|
513
|
+
apiKey: 'secret-key',
|
|
514
|
+
headers: { 'Content-Type': 'application/json' },
|
|
515
|
+
retries: 3
|
|
516
|
+
});
|
|
517
|
+
|
|
518
|
+
// WebSocket endpoint
|
|
519
|
+
logger.addRemoteHandler('wss://realtime.logs.com', {
|
|
520
|
+
reconnect: true,
|
|
521
|
+
maxReconnectAttempts: 5
|
|
522
|
+
});
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
#### Remote Handler Options
|
|
526
|
+
```typescript
|
|
527
|
+
interface RemoteHandlerOptions {
|
|
528
|
+
apiKey?: string;
|
|
529
|
+
headers?: Record<string, string>;
|
|
530
|
+
retries?: number;
|
|
531
|
+
timeout?: number;
|
|
532
|
+
reconnect?: boolean;
|
|
533
|
+
reconnectInterval?: number;
|
|
534
|
+
maxReconnectAttempts?: number;
|
|
535
|
+
filter?: (entry: LogEntry) => boolean;
|
|
536
|
+
immediate?: boolean;
|
|
537
|
+
}
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
## 📋 Types & Interfaces
|
|
543
|
+
|
|
544
|
+
### Core Types
|
|
545
|
+
|
|
546
|
+
```typescript
|
|
547
|
+
// Log levels
|
|
548
|
+
type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'critical';
|
|
549
|
+
|
|
550
|
+
// Theme names
|
|
551
|
+
type ThemeName = 'default' | 'dark' | 'neon' | 'cyberpunk' | 'retro';
|
|
552
|
+
|
|
553
|
+
// Banner types
|
|
554
|
+
type BannerType = 'simple' | 'ascii' | 'unicode' | 'svg' | 'animated';
|
|
555
|
+
|
|
556
|
+
// Export formats
|
|
557
|
+
type ExportFormat = 'csv' | 'json' | 'xml';
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
### Interfaces
|
|
561
|
+
|
|
562
|
+
```typescript
|
|
563
|
+
// Log entry structure
|
|
564
|
+
interface LogEntry {
|
|
565
|
+
id: string;
|
|
566
|
+
timestamp: string;
|
|
567
|
+
level: LogLevel;
|
|
568
|
+
prefix: string;
|
|
569
|
+
message: string;
|
|
570
|
+
args: any[];
|
|
571
|
+
location?: {
|
|
572
|
+
file: string;
|
|
573
|
+
line: number;
|
|
574
|
+
column: number;
|
|
575
|
+
function: string;
|
|
576
|
+
};
|
|
577
|
+
performance?: {
|
|
578
|
+
duration: number;
|
|
579
|
+
memory: NodeJS.MemoryUsage;
|
|
580
|
+
};
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
// Log handler interface
|
|
584
|
+
interface ILogHandler {
|
|
585
|
+
handle(entry: LogEntry): void | Promise<void>;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
// Style configuration
|
|
589
|
+
interface StyleConfig {
|
|
590
|
+
emoji?: string;
|
|
591
|
+
colors?: {
|
|
592
|
+
primary: string;
|
|
593
|
+
secondary: string;
|
|
594
|
+
text: string;
|
|
595
|
+
};
|
|
596
|
+
effects?: {
|
|
597
|
+
shadow: string;
|
|
598
|
+
border: string;
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
## 🔄 Lifecycle Events
|
|
606
|
+
|
|
607
|
+
### Event Handlers
|
|
608
|
+
|
|
609
|
+
```typescript
|
|
610
|
+
// Log events
|
|
611
|
+
logger.on('log', (entry: LogEntry) => {
|
|
612
|
+
// Handle each log entry
|
|
613
|
+
});
|
|
614
|
+
|
|
615
|
+
logger.on('error', (error: Error) => {
|
|
616
|
+
// Handle logging errors
|
|
617
|
+
});
|
|
618
|
+
|
|
619
|
+
logger.on('export', (data: string, format: ExportFormat) => {
|
|
620
|
+
// Handle export completion
|
|
621
|
+
});
|
|
622
|
+
|
|
623
|
+
// Remote events
|
|
624
|
+
logger.on('remote:success', (endpoint: string, count: number) => {
|
|
625
|
+
// Handle successful remote transmission
|
|
626
|
+
});
|
|
627
|
+
|
|
628
|
+
logger.on('remote:error', (endpoint: string, error: Error) => {
|
|
629
|
+
// Handle remote logging errors
|
|
630
|
+
});
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
### Buffer Events
|
|
634
|
+
|
|
635
|
+
```typescript
|
|
636
|
+
logger.on('buffer:full', (size: number) => {
|
|
637
|
+
// Handle buffer capacity reached
|
|
638
|
+
});
|
|
639
|
+
|
|
640
|
+
logger.on('buffer:cleared', () => {
|
|
641
|
+
// Handle buffer cleared
|
|
642
|
+
});
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
## 📚 Advanced Usage
|
|
648
|
+
|
|
649
|
+
### Performance Monitoring
|
|
650
|
+
|
|
651
|
+
```typescript
|
|
652
|
+
// Automatic performance tracking
|
|
653
|
+
logger.time('operation');
|
|
654
|
+
await performOperation();
|
|
655
|
+
const metrics = logger.timeEnd('operation'); // Returns timing data
|
|
656
|
+
|
|
657
|
+
// Memory usage tracking
|
|
658
|
+
logger.logMemory('checkpoint-1');
|
|
659
|
+
await heavyOperation();
|
|
660
|
+
logger.logMemory('checkpoint-2');
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
### Conditional Logging
|
|
664
|
+
|
|
665
|
+
```typescript
|
|
666
|
+
// Environment-based logging
|
|
667
|
+
logger.setLevel(process.env.NODE_ENV === 'production' ? 'warn' : 'debug');
|
|
668
|
+
|
|
669
|
+
// Conditional handlers
|
|
670
|
+
if (process.env.ENABLE_FILE_LOGGING === 'true') {
|
|
671
|
+
logger.addHandler(new FileLogHandler('./app.log'));
|
|
672
|
+
}
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
### Custom Formatters
|
|
676
|
+
|
|
677
|
+
```typescript
|
|
678
|
+
// Custom message formatting
|
|
679
|
+
logger.setFormatter((entry: LogEntry) => {
|
|
680
|
+
return `[${entry.timestamp}] ${entry.level.toUpperCase()}: ${entry.message}`;
|
|
681
|
+
});
|
|
682
|
+
|
|
683
|
+
// Custom data serialization
|
|
684
|
+
logger.setSerializer((data: any) => {
|
|
685
|
+
return JSON.stringify(data, null, 2);
|
|
686
|
+
});
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
691
|
+
For more examples and use cases, see the [examples folder](../examples/) and [live demo](https://mks2508.github.io/advanced-logger/).
|