axon-logger 1.0.0 → 1.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/BROWSER_COMPATIBILITY.md +0 -0
- package/INTEGRATION_GUIDE.md +503 -0
- package/dist/extractor/LogExtractor.d.ts.map +1 -1
- package/dist/extractor/LogExtractor.js +11 -36
- package/dist/extractor/LogExtractor.js.map +1 -1
- package/dist/logger/ConfigLoader.d.ts.map +1 -1
- package/dist/logger/ConfigLoader.js +15 -35
- package/dist/logger/ConfigLoader.js.map +1 -1
- package/package.json +5 -1
|
File without changes
|
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
# AXON Logger - Integration Guide for AI Assistants
|
|
2
|
+
|
|
3
|
+
This guide helps AI assistants integrate AXON logging framework into existing projects.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
AXON is a token-efficient logging framework using TOON (Token-Oriented Object Notation) format. It reduces log token usage by 30-60% compared to JSON, making it ideal for AI/LLM applications.
|
|
8
|
+
|
|
9
|
+
**NPM Package**: `axon-logger`
|
|
10
|
+
**Version**: 1.0.0
|
|
11
|
+
**Repository**: https://www.npmjs.com/package/axon-logger
|
|
12
|
+
|
|
13
|
+
## Quick Integration Steps
|
|
14
|
+
|
|
15
|
+
### 1. Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install axon-logger
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 2. Basic Setup
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
25
|
+
|
|
26
|
+
// Create logger instance
|
|
27
|
+
const logger = new Logger({
|
|
28
|
+
outputPath: './logs/app.txt',
|
|
29
|
+
level: LogLevel.INFO
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Use in your application
|
|
33
|
+
logger.info('Application started');
|
|
34
|
+
logger.error('Error occurred', { code: 500, message: 'Internal error' });
|
|
35
|
+
|
|
36
|
+
// Cleanup when done
|
|
37
|
+
await logger.flush();
|
|
38
|
+
await logger.close();
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. Configuration Options
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
const logger = new Logger({
|
|
45
|
+
outputPath: './logs/app.txt', // Required: log file path
|
|
46
|
+
level: LogLevel.INFO, // Required: minimum log level
|
|
47
|
+
maxFileSize: 10 * 1024 * 1024, // Optional: 10MB rotation
|
|
48
|
+
rotationInterval: 'daily', // Optional: 'hourly' | 'daily' | 'weekly' | 'none'
|
|
49
|
+
bufferSize: 100, // Optional: buffer 100 entries
|
|
50
|
+
flushInterval: 5000, // Optional: auto-flush every 5s
|
|
51
|
+
delimiter: ',', // Optional: ',' | '\t' | '|'
|
|
52
|
+
omitNullValues: true, // Optional: skip null/undefined
|
|
53
|
+
fieldAliases: { // Optional: shorten field names
|
|
54
|
+
timestamp: 't',
|
|
55
|
+
level: 'l',
|
|
56
|
+
message: 'm'
|
|
57
|
+
},
|
|
58
|
+
onError: (error) => console.error(error) // Optional: error handler
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Common Integration Patterns
|
|
63
|
+
|
|
64
|
+
### Pattern 1: Express.js Middleware
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
import express from 'express';
|
|
68
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
69
|
+
|
|
70
|
+
const app = express();
|
|
71
|
+
const logger = new Logger({
|
|
72
|
+
outputPath: './logs/api.txt',
|
|
73
|
+
level: LogLevel.INFO
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// Request logging middleware
|
|
77
|
+
app.use((req, res, next) => {
|
|
78
|
+
logger.info('Request received', {
|
|
79
|
+
method: req.method,
|
|
80
|
+
path: req.path,
|
|
81
|
+
ip: req.ip
|
|
82
|
+
});
|
|
83
|
+
next();
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Error logging middleware
|
|
87
|
+
app.use((err, req, res, next) => {
|
|
88
|
+
logger.error('Request error', {
|
|
89
|
+
error: err.message,
|
|
90
|
+
stack: err.stack,
|
|
91
|
+
path: req.path
|
|
92
|
+
});
|
|
93
|
+
res.status(500).json({ error: 'Internal server error' });
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
// Cleanup on shutdown
|
|
97
|
+
process.on('SIGTERM', async () => {
|
|
98
|
+
await logger.flush();
|
|
99
|
+
await logger.close();
|
|
100
|
+
process.exit(0);
|
|
101
|
+
});
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Pattern 2: Global Logger Singleton
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// logger.ts
|
|
108
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
109
|
+
|
|
110
|
+
class AppLogger {
|
|
111
|
+
private static instance: Logger;
|
|
112
|
+
|
|
113
|
+
static getInstance(): Logger {
|
|
114
|
+
if (!AppLogger.instance) {
|
|
115
|
+
AppLogger.instance = new Logger({
|
|
116
|
+
outputPath: './logs/app.txt',
|
|
117
|
+
level: process.env.LOG_LEVEL as LogLevel || LogLevel.INFO,
|
|
118
|
+
maxFileSize: 10 * 1024 * 1024,
|
|
119
|
+
rotationInterval: 'daily'
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return AppLogger.instance;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static async cleanup() {
|
|
126
|
+
if (AppLogger.instance) {
|
|
127
|
+
await AppLogger.instance.flush();
|
|
128
|
+
await AppLogger.instance.close();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export const logger = AppLogger.getInstance();
|
|
134
|
+
export const cleanupLogger = AppLogger.cleanup;
|
|
135
|
+
|
|
136
|
+
// Usage in other files
|
|
137
|
+
import { logger } from './logger';
|
|
138
|
+
logger.info('Using global logger');
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Pattern 3: Section-Based Logging
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
145
|
+
|
|
146
|
+
const logger = new Logger({
|
|
147
|
+
outputPath: './logs/workflow.txt',
|
|
148
|
+
level: LogLevel.INFO
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
async function processOrder(orderId: string) {
|
|
152
|
+
logger.mark(`order-${orderId}-start`);
|
|
153
|
+
|
|
154
|
+
logger.info('Validating order', { orderId });
|
|
155
|
+
// ... validation logic
|
|
156
|
+
|
|
157
|
+
logger.info('Processing payment', { orderId });
|
|
158
|
+
// ... payment logic
|
|
159
|
+
|
|
160
|
+
logger.info('Sending confirmation', { orderId });
|
|
161
|
+
// ... email logic
|
|
162
|
+
|
|
163
|
+
logger.mark(`order-${orderId}-complete`);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Later, extract specific order logs using CLI:
|
|
167
|
+
// axon extract logs/workflow.txt --section order-123-start --end-section order-123-complete
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Pattern 4: Environment-Based Configuration
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
174
|
+
|
|
175
|
+
const isDevelopment = process.env.NODE_ENV === 'development';
|
|
176
|
+
const isProduction = process.env.NODE_ENV === 'production';
|
|
177
|
+
|
|
178
|
+
const logger = new Logger({
|
|
179
|
+
outputPath: isProduction ? './logs/production.txt' : './logs/dev.txt',
|
|
180
|
+
level: isDevelopment ? LogLevel.DEBUG : LogLevel.INFO,
|
|
181
|
+
maxFileSize: isProduction ? 50 * 1024 * 1024 : 10 * 1024 * 1024,
|
|
182
|
+
rotationInterval: isProduction ? 'daily' : 'none',
|
|
183
|
+
fieldAliases: isProduction ? {
|
|
184
|
+
timestamp: 't',
|
|
185
|
+
level: 'l',
|
|
186
|
+
message: 'm'
|
|
187
|
+
} : undefined, // Full field names in dev for readability
|
|
188
|
+
onError: (error) => {
|
|
189
|
+
if (isDevelopment) {
|
|
190
|
+
console.error('Logger error:', error);
|
|
191
|
+
}
|
|
192
|
+
// In production, might want to send to error tracking service
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Pattern 5: Browser Usage
|
|
198
|
+
|
|
199
|
+
```typescript
|
|
200
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
201
|
+
|
|
202
|
+
// Browser automatically uses localStorage/IndexedDB
|
|
203
|
+
const logger = new Logger({
|
|
204
|
+
outputPath: 'app-logs', // Storage key name
|
|
205
|
+
level: LogLevel.INFO,
|
|
206
|
+
maxFileSize: 5 * 1024 * 1024 // 5MB limit for browser
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// Log user interactions
|
|
210
|
+
document.addEventListener('click', (e) => {
|
|
211
|
+
logger.debug('User click', {
|
|
212
|
+
target: (e.target as HTMLElement).tagName,
|
|
213
|
+
x: e.clientX,
|
|
214
|
+
y: e.clientY
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
// Download logs for debugging
|
|
219
|
+
const downloadLogs = async () => {
|
|
220
|
+
const fileManager = logger.getFileManager();
|
|
221
|
+
if ('downloadLogs' in fileManager) {
|
|
222
|
+
await fileManager.downloadLogs();
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Environment Variables
|
|
228
|
+
|
|
229
|
+
Configure AXON using environment variables (optional):
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# .env file
|
|
233
|
+
AXON_LOG_LEVEL=INFO
|
|
234
|
+
AXON_OUTPUT_PATH=./logs/app.txt
|
|
235
|
+
AXON_MAX_FILE_SIZE=10485760
|
|
236
|
+
AXON_ROTATION_INTERVAL=daily
|
|
237
|
+
AXON_BUFFER_SIZE=100
|
|
238
|
+
AXON_FLUSH_INTERVAL=5000
|
|
239
|
+
AXON_DELIMITER=,
|
|
240
|
+
AXON_OMIT_NULL_VALUES=true
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## Configuration File
|
|
244
|
+
|
|
245
|
+
Create `.axonrc.json` in project root (optional):
|
|
246
|
+
|
|
247
|
+
```json
|
|
248
|
+
{
|
|
249
|
+
"outputPath": "./logs/app.txt",
|
|
250
|
+
"level": "INFO",
|
|
251
|
+
"maxFileSize": 10485760,
|
|
252
|
+
"rotationInterval": "daily",
|
|
253
|
+
"bufferSize": 100,
|
|
254
|
+
"flushInterval": 5000,
|
|
255
|
+
"fieldAliases": {
|
|
256
|
+
"timestamp": "t",
|
|
257
|
+
"level": "l",
|
|
258
|
+
"message": "m"
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Configuration precedence**: Constructor options > Environment variables > Config file > Defaults
|
|
264
|
+
|
|
265
|
+
## Log Levels
|
|
266
|
+
|
|
267
|
+
```typescript
|
|
268
|
+
enum LogLevel {
|
|
269
|
+
DEBUG = 0, // Detailed debugging information
|
|
270
|
+
INFO = 1, // General informational messages
|
|
271
|
+
WARN = 2, // Warning messages
|
|
272
|
+
ERROR = 3, // Error messages
|
|
273
|
+
FATAL = 4 // Critical errors
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Advanced Features
|
|
278
|
+
|
|
279
|
+
### Global Metadata
|
|
280
|
+
|
|
281
|
+
Add metadata to all log entries:
|
|
282
|
+
|
|
283
|
+
```typescript
|
|
284
|
+
logger.setGlobalMetadata({
|
|
285
|
+
appVersion: '1.0.0',
|
|
286
|
+
environment: 'production',
|
|
287
|
+
serverName: 'web-01'
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
logger.info('Request processed'); // Includes global metadata
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Runtime Configuration Updates
|
|
294
|
+
|
|
295
|
+
Update settings without recreating logger:
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
// Change log level at runtime
|
|
299
|
+
logger.setLevel(LogLevel.DEBUG);
|
|
300
|
+
|
|
301
|
+
// Update multiple settings
|
|
302
|
+
logger.updateConfig({
|
|
303
|
+
bufferSize: 200,
|
|
304
|
+
flushInterval: 10000
|
|
305
|
+
});
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Synchronous Logging
|
|
309
|
+
|
|
310
|
+
For critical errors that need immediate write:
|
|
311
|
+
|
|
312
|
+
```typescript
|
|
313
|
+
await logger.fatalSync('Critical system failure', { reason: 'Out of memory' });
|
|
314
|
+
await logger.errorSync('Database connection lost');
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Log Extraction (CLI)
|
|
318
|
+
|
|
319
|
+
Extract specific logs using the CLI tool:
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
# Extract by section
|
|
323
|
+
axon extract logs/app.txt --section auth-flow --end-section auth-complete
|
|
324
|
+
|
|
325
|
+
# Extract by time range
|
|
326
|
+
axon extract logs/app.txt --time-range "2024-01-01T00:00:00Z,2024-01-02T00:00:00Z"
|
|
327
|
+
|
|
328
|
+
# Extract by log level
|
|
329
|
+
axon extract logs/app.txt --level ERROR --output errors.txt
|
|
330
|
+
|
|
331
|
+
# Count tokens
|
|
332
|
+
axon count logs/app.txt
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
## TOON Format Examples
|
|
336
|
+
|
|
337
|
+
AXON uses TOON format for efficient serialization:
|
|
338
|
+
|
|
339
|
+
### Simple Object
|
|
340
|
+
```
|
|
341
|
+
timestamp: 1705334400000, level: INFO, message: User logged in, userId: 123
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Nested Object
|
|
345
|
+
```
|
|
346
|
+
timestamp: 1705334400000, level: ERROR, message: Database error, error:
|
|
347
|
+
code: 500
|
|
348
|
+
message: Connection timeout
|
|
349
|
+
details:
|
|
350
|
+
host: localhost
|
|
351
|
+
port: 5432
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Array (Tabular)
|
|
355
|
+
```
|
|
356
|
+
users[3]{id,name,age}:
|
|
357
|
+
1,Alice,28
|
|
358
|
+
2,Bob,35
|
|
359
|
+
3,Carol,42
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Section Marker
|
|
363
|
+
```
|
|
364
|
+
=== MARKER: authentication-flow | 1705334400000 ===
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## Migration from Other Loggers
|
|
368
|
+
|
|
369
|
+
### From Winston
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
// Before (Winston)
|
|
373
|
+
import winston from 'winston';
|
|
374
|
+
const logger = winston.createLogger({
|
|
375
|
+
level: 'info',
|
|
376
|
+
format: winston.format.json(),
|
|
377
|
+
transports: [
|
|
378
|
+
new winston.transports.File({ filename: 'app.log' })
|
|
379
|
+
]
|
|
380
|
+
});
|
|
381
|
+
|
|
382
|
+
// After (AXON)
|
|
383
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
384
|
+
const logger = new Logger({
|
|
385
|
+
outputPath: './logs/app.txt',
|
|
386
|
+
level: LogLevel.INFO
|
|
387
|
+
});
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### From Pino
|
|
391
|
+
|
|
392
|
+
```typescript
|
|
393
|
+
// Before (Pino)
|
|
394
|
+
import pino from 'pino';
|
|
395
|
+
const logger = pino({
|
|
396
|
+
level: 'info',
|
|
397
|
+
transport: {
|
|
398
|
+
target: 'pino/file',
|
|
399
|
+
options: { destination: './app.log' }
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
// After (AXON)
|
|
404
|
+
import { Logger, LogLevel } from 'axon-logger';
|
|
405
|
+
const logger = new Logger({
|
|
406
|
+
outputPath: './logs/app.txt',
|
|
407
|
+
level: LogLevel.INFO
|
|
408
|
+
});
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
## Best Practices
|
|
412
|
+
|
|
413
|
+
1. **Always flush and close on shutdown**:
|
|
414
|
+
```typescript
|
|
415
|
+
process.on('SIGTERM', async () => {
|
|
416
|
+
await logger.flush();
|
|
417
|
+
await logger.close();
|
|
418
|
+
process.exit(0);
|
|
419
|
+
});
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
2. **Use appropriate log levels**:
|
|
423
|
+
- DEBUG: Detailed debugging (disable in production)
|
|
424
|
+
- INFO: General application flow
|
|
425
|
+
- WARN: Potential issues
|
|
426
|
+
- ERROR: Errors that need attention
|
|
427
|
+
- FATAL: Critical failures
|
|
428
|
+
|
|
429
|
+
3. **Use section markers for workflows**:
|
|
430
|
+
```typescript
|
|
431
|
+
logger.mark('payment-processing-start');
|
|
432
|
+
// ... payment logic
|
|
433
|
+
logger.mark('payment-processing-end');
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
4. **Add context with metadata**:
|
|
437
|
+
```typescript
|
|
438
|
+
logger.error('Payment failed', {
|
|
439
|
+
userId: user.id,
|
|
440
|
+
amount: payment.amount,
|
|
441
|
+
reason: error.message
|
|
442
|
+
});
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
5. **Use field aliases in production** to reduce token usage:
|
|
446
|
+
```typescript
|
|
447
|
+
fieldAliases: {
|
|
448
|
+
timestamp: 't',
|
|
449
|
+
level: 'l',
|
|
450
|
+
message: 'm',
|
|
451
|
+
userId: 'uid',
|
|
452
|
+
requestId: 'rid'
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
## Troubleshooting
|
|
457
|
+
|
|
458
|
+
### Issue: Logs not appearing
|
|
459
|
+
- Check `outputPath` is writable
|
|
460
|
+
- Ensure `level` allows your log messages
|
|
461
|
+
- Call `await logger.flush()` to force write
|
|
462
|
+
|
|
463
|
+
### Issue: High memory usage
|
|
464
|
+
- Reduce `bufferSize` (default: 100)
|
|
465
|
+
- Reduce `flushInterval` for more frequent writes
|
|
466
|
+
- Enable file rotation with `maxFileSize`
|
|
467
|
+
|
|
468
|
+
### Issue: Performance impact
|
|
469
|
+
- Increase `bufferSize` to reduce I/O
|
|
470
|
+
- Increase `flushInterval` for less frequent writes
|
|
471
|
+
- Use appropriate log level (avoid DEBUG in production)
|
|
472
|
+
|
|
473
|
+
## TypeScript Support
|
|
474
|
+
|
|
475
|
+
AXON includes full TypeScript definitions:
|
|
476
|
+
|
|
477
|
+
```typescript
|
|
478
|
+
import { Logger, LogLevel, LoggerConfig, LogEntry } from 'axon-logger';
|
|
479
|
+
|
|
480
|
+
const config: LoggerConfig = {
|
|
481
|
+
outputPath: './logs/app.txt',
|
|
482
|
+
level: LogLevel.INFO
|
|
483
|
+
};
|
|
484
|
+
|
|
485
|
+
const logger = new Logger(config);
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
## Performance Characteristics
|
|
489
|
+
|
|
490
|
+
- **Token Reduction**: 30-60% fewer tokens vs JSON
|
|
491
|
+
- **Throughput**: ~80,000+ logs/second (buffered)
|
|
492
|
+
- **Memory**: ~1-2MB per 1000 buffered entries
|
|
493
|
+
- **Latency**: <1ms per log call (buffered), ~10-50ms (flushed)
|
|
494
|
+
|
|
495
|
+
## Support & Resources
|
|
496
|
+
|
|
497
|
+
- **NPM Package**: https://www.npmjs.com/package/axon-logger
|
|
498
|
+
- **Documentation**: See `docs/API.md` in package
|
|
499
|
+
- **Issues**: Report via npm package page
|
|
500
|
+
|
|
501
|
+
## License
|
|
502
|
+
|
|
503
|
+
MIT License - Free for commercial and personal use.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogExtractor.d.ts","sourceRoot":"","sources":["../../src/extractor/LogExtractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"LogExtractor.d.ts","sourceRoot":"","sources":["../../src/extractor/LogExtractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAUrD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;OAGG;gBACS,WAAW,EAAE,MAAM;IAc/B;;;OAGG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;OAGG;IACH,UAAU,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE;IAInC;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAuC/D;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM;IA0BhD;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAkBvC;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBxE"}
|
|
@@ -3,43 +3,16 @@
|
|
|
3
3
|
* LogExtractor class
|
|
4
4
|
* Provides utilities for extracting and filtering log entries from TOON-formatted log files
|
|
5
5
|
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
7
|
exports.LogExtractor = void 0;
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
8
|
const TOONParser_1 = require("../parser/TOONParser");
|
|
9
|
+
// Conditional import for Node.js only
|
|
10
|
+
let fs;
|
|
11
|
+
let path;
|
|
12
|
+
if (typeof window === 'undefined') {
|
|
13
|
+
fs = require('fs');
|
|
14
|
+
path = require('path');
|
|
15
|
+
}
|
|
43
16
|
/**
|
|
44
17
|
* LogExtractor class
|
|
45
18
|
* Loads and parses log files, provides methods for extracting sections, time ranges, and filtering by level
|
|
@@ -51,6 +24,9 @@ class LogExtractor {
|
|
|
51
24
|
*/
|
|
52
25
|
constructor(logFilePath) {
|
|
53
26
|
this.entries = [];
|
|
27
|
+
if (typeof window !== 'undefined') {
|
|
28
|
+
throw new Error('LogExtractor is not supported in browser environments. Use Logger with BrowserFileManager instead.');
|
|
29
|
+
}
|
|
54
30
|
if (!logFilePath || typeof logFilePath !== 'string') {
|
|
55
31
|
throw new Error('Invalid logFilePath: must be a non-empty string');
|
|
56
32
|
}
|
|
@@ -68,7 +44,7 @@ class LogExtractor {
|
|
|
68
44
|
throw new Error(`Log file not found: ${this.logFilePath}`);
|
|
69
45
|
}
|
|
70
46
|
const content = fs.readFileSync(this.logFilePath, 'utf8');
|
|
71
|
-
const lines = content.split('\n').filter(line => line.trim().length > 0);
|
|
47
|
+
const lines = content.split('\n').filter((line) => line.trim().length > 0);
|
|
72
48
|
// Parse each entry (could be a log entry or a marker)
|
|
73
49
|
for (const line of lines) {
|
|
74
50
|
if (line.startsWith('=== MARKER:')) {
|
|
@@ -220,7 +196,6 @@ class LogExtractor {
|
|
|
220
196
|
}
|
|
221
197
|
try {
|
|
222
198
|
// Ensure directory exists
|
|
223
|
-
const path = require('path');
|
|
224
199
|
const dir = path.dirname(outputPath);
|
|
225
200
|
if (!fs.existsSync(dir)) {
|
|
226
201
|
fs.mkdirSync(dir, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogExtractor.js","sourceRoot":"","sources":["../../src/extractor/LogExtractor.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"LogExtractor.js","sourceRoot":"","sources":["../../src/extractor/LogExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../src/logger/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../src/logger/ConfigLoader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAY,cAAc,EAAqC,MAAM,SAAS,CAAC;AAUpG;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,YAAY,CAAC,CAsE3D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA4DrE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,YAAY,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,cAAc,CAyChB"}
|
|
@@ -3,52 +3,28 @@
|
|
|
3
3
|
* Configuration loader for AXON Logger
|
|
4
4
|
* Handles loading configuration from multiple sources with proper precedence
|
|
5
5
|
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
7
|
exports.loadFromEnvironment = loadFromEnvironment;
|
|
41
8
|
exports.loadFromFile = loadFromFile;
|
|
42
9
|
exports.mergeConfigurations = mergeConfigurations;
|
|
43
|
-
const fs = __importStar(require("fs"));
|
|
44
|
-
const path = __importStar(require("path"));
|
|
45
10
|
const types_1 = require("./types");
|
|
11
|
+
// Conditional import for Node.js only
|
|
12
|
+
let fs;
|
|
13
|
+
let path;
|
|
14
|
+
if (typeof window === 'undefined') {
|
|
15
|
+
fs = require('fs');
|
|
16
|
+
path = require('path');
|
|
17
|
+
}
|
|
46
18
|
/**
|
|
47
19
|
* Loads configuration from environment variables
|
|
48
20
|
* Environment variables are prefixed with AXON_
|
|
49
21
|
* @returns Partial configuration from environment variables
|
|
50
22
|
*/
|
|
51
23
|
function loadFromEnvironment() {
|
|
24
|
+
// Browser environment - return empty config
|
|
25
|
+
if (typeof window !== 'undefined' || typeof process === 'undefined') {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
52
28
|
const config = {};
|
|
53
29
|
// Load log level from AXON_LOG_LEVEL
|
|
54
30
|
if (process.env.AXON_LOG_LEVEL) {
|
|
@@ -112,6 +88,10 @@ function loadFromEnvironment() {
|
|
|
112
88
|
* @returns Partial configuration from file, or empty object if file not found
|
|
113
89
|
*/
|
|
114
90
|
function loadFromFile(startDir) {
|
|
91
|
+
// Browser environment - return empty config
|
|
92
|
+
if (typeof window !== 'undefined' || !fs || !path) {
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
115
95
|
const searchDir = startDir || process.cwd();
|
|
116
96
|
const configFileName = '.axonrc.json';
|
|
117
97
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/logger/ConfigLoader.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/logger/ConfigLoader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "axon-logger",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "A token-efficient logging framework using TOON (Token-Oriented Object Notation) format",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"browser": {
|
|
8
|
+
"./dist/extractor/LogExtractor.js": false,
|
|
9
|
+
"./dist/cli/axon-cli.js": false
|
|
10
|
+
},
|
|
7
11
|
"scripts": {
|
|
8
12
|
"build": "tsc",
|
|
9
13
|
"build:browser": "webpack --config webpack.config.js",
|