axon-logger 1.0.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/README.md +0 -0
- package/dist/axon.browser.js +2 -0
- package/dist/axon.browser.js.map +1 -0
- package/dist/cli/axon-cli.d.ts +7 -0
- package/dist/cli/axon-cli.d.ts.map +1 -0
- package/dist/cli/axon-cli.js +179 -0
- package/dist/cli/axon-cli.js.map +1 -0
- package/dist/extractor/LogExtractor.d.ts +64 -0
- package/dist/extractor/LogExtractor.d.ts.map +1 -0
- package/dist/extractor/LogExtractor.js +237 -0
- package/dist/extractor/LogExtractor.js.map +1 -0
- package/dist/extractor/index.d.ts +2 -0
- package/dist/extractor/index.d.ts.map +1 -0
- package/dist/extractor/index.js +6 -0
- package/dist/extractor/index.js.map +1 -0
- package/dist/file-manager/BrowserFileManager.d.ts +102 -0
- package/dist/file-manager/BrowserFileManager.d.ts.map +1 -0
- package/dist/file-manager/BrowserFileManager.js +281 -0
- package/dist/file-manager/BrowserFileManager.js.map +1 -0
- package/dist/file-manager/FileManager.d.ts +103 -0
- package/dist/file-manager/FileManager.d.ts.map +1 -0
- package/dist/file-manager/FileManager.js +331 -0
- package/dist/file-manager/FileManager.js.map +1 -0
- package/dist/file-manager/index.d.ts +7 -0
- package/dist/file-manager/index.d.ts.map +1 -0
- package/dist/file-manager/index.js +11 -0
- package/dist/file-manager/index.js.map +1 -0
- package/dist/file-manager/types.d.ts +37 -0
- package/dist/file-manager/types.d.ts.map +1 -0
- package/dist/file-manager/types.js +6 -0
- package/dist/file-manager/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/ConfigLoader.d.ts +27 -0
- package/dist/logger/ConfigLoader.d.ts.map +1 -0
- package/dist/logger/ConfigLoader.js +210 -0
- package/dist/logger/ConfigLoader.js.map +1 -0
- package/dist/logger/Logger.d.ts +142 -0
- package/dist/logger/Logger.d.ts.map +1 -0
- package/dist/logger/Logger.js +511 -0
- package/dist/logger/Logger.js.map +1 -0
- package/dist/logger/index.d.ts +7 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +17 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/types.d.ts +107 -0
- package/dist/logger/types.d.ts.map +1 -0
- package/dist/logger/types.js +57 -0
- package/dist/logger/types.js.map +1 -0
- package/dist/parser/StreamingParser.d.ts +21 -0
- package/dist/parser/StreamingParser.d.ts.map +1 -0
- package/dist/parser/StreamingParser.js +70 -0
- package/dist/parser/StreamingParser.js.map +1 -0
- package/dist/parser/TOONParser.d.ts +113 -0
- package/dist/parser/TOONParser.d.ts.map +1 -0
- package/dist/parser/TOONParser.js +386 -0
- package/dist/parser/TOONParser.js.map +1 -0
- package/dist/parser/index.d.ts +8 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +13 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/serializer/TOONSerializer.d.ts +232 -0
- package/dist/serializer/TOONSerializer.d.ts.map +1 -0
- package/dist/serializer/TOONSerializer.js +497 -0
- package/dist/serializer/TOONSerializer.js.map +1 -0
- package/dist/serializer/index.d.ts +7 -0
- package/dist/serializer/index.d.ts.map +1 -0
- package/dist/serializer/index.js +11 -0
- package/dist/serializer/index.js.map +1 -0
- package/dist/utils/TokenCounter.d.ts +31 -0
- package/dist/utils/TokenCounter.d.ts.map +1 -0
- package/dist/utils/TokenCounter.js +44 -0
- package/dist/utils/TokenCounter.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/docs/API.md +315 -0
- package/package.json +49 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration loader for AXON Logger
|
|
4
|
+
* Handles loading configuration from multiple sources with proper precedence
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.loadFromEnvironment = loadFromEnvironment;
|
|
41
|
+
exports.loadFromFile = loadFromFile;
|
|
42
|
+
exports.mergeConfigurations = mergeConfigurations;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const types_1 = require("./types");
|
|
46
|
+
/**
|
|
47
|
+
* Loads configuration from environment variables
|
|
48
|
+
* Environment variables are prefixed with AXON_
|
|
49
|
+
* @returns Partial configuration from environment variables
|
|
50
|
+
*/
|
|
51
|
+
function loadFromEnvironment() {
|
|
52
|
+
const config = {};
|
|
53
|
+
// Load log level from AXON_LOG_LEVEL
|
|
54
|
+
if (process.env.AXON_LOG_LEVEL) {
|
|
55
|
+
const levelStr = process.env.AXON_LOG_LEVEL.toUpperCase();
|
|
56
|
+
if (levelStr in types_1.LogLevel && isNaN(Number(levelStr))) {
|
|
57
|
+
config.level = types_1.LogLevel[levelStr];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Load output path from AXON_OUTPUT_PATH
|
|
61
|
+
if (process.env.AXON_OUTPUT_PATH) {
|
|
62
|
+
config.outputPath = process.env.AXON_OUTPUT_PATH;
|
|
63
|
+
}
|
|
64
|
+
// Load max file size from AXON_MAX_FILE_SIZE
|
|
65
|
+
if (process.env.AXON_MAX_FILE_SIZE) {
|
|
66
|
+
const size = parseInt(process.env.AXON_MAX_FILE_SIZE, 10);
|
|
67
|
+
if (!isNaN(size) && size > 0) {
|
|
68
|
+
config.maxFileSize = size;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Load rotation interval from AXON_ROTATION_INTERVAL
|
|
72
|
+
if (process.env.AXON_ROTATION_INTERVAL) {
|
|
73
|
+
const interval = process.env.AXON_ROTATION_INTERVAL.toLowerCase();
|
|
74
|
+
if (['hourly', 'daily', 'weekly', 'none'].includes(interval)) {
|
|
75
|
+
config.rotationInterval = interval;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Load buffer size from AXON_BUFFER_SIZE
|
|
79
|
+
if (process.env.AXON_BUFFER_SIZE) {
|
|
80
|
+
const size = parseInt(process.env.AXON_BUFFER_SIZE, 10);
|
|
81
|
+
if (!isNaN(size) && size > 0) {
|
|
82
|
+
config.bufferSize = size;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Load flush interval from AXON_FLUSH_INTERVAL
|
|
86
|
+
if (process.env.AXON_FLUSH_INTERVAL) {
|
|
87
|
+
const interval = parseInt(process.env.AXON_FLUSH_INTERVAL, 10);
|
|
88
|
+
if (!isNaN(interval) && interval >= 0) {
|
|
89
|
+
config.flushInterval = interval;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Load delimiter from AXON_DELIMITER
|
|
93
|
+
if (process.env.AXON_DELIMITER) {
|
|
94
|
+
const delimiter = process.env.AXON_DELIMITER;
|
|
95
|
+
if (delimiter === ',' || delimiter === '\t' || delimiter === '|' || delimiter === 'tab' || delimiter === 'pipe') {
|
|
96
|
+
config.delimiter = delimiter === 'tab' ? '\t' : delimiter === 'pipe' ? '|' : delimiter;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Load omit null values from AXON_OMIT_NULL_VALUES
|
|
100
|
+
if (process.env.AXON_OMIT_NULL_VALUES) {
|
|
101
|
+
const value = process.env.AXON_OMIT_NULL_VALUES.toLowerCase();
|
|
102
|
+
if (value === 'true' || value === 'false') {
|
|
103
|
+
config.omitNullValues = value === 'true';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return config;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Loads configuration from a .axonrc.json file
|
|
110
|
+
* Searches for the file in the current directory and parent directories
|
|
111
|
+
* @param startDir - Directory to start searching from (defaults to current working directory)
|
|
112
|
+
* @returns Partial configuration from file, or empty object if file not found
|
|
113
|
+
*/
|
|
114
|
+
function loadFromFile(startDir) {
|
|
115
|
+
const searchDir = startDir || process.cwd();
|
|
116
|
+
const configFileName = '.axonrc.json';
|
|
117
|
+
try {
|
|
118
|
+
// Search for config file in current directory and parent directories
|
|
119
|
+
let currentDir = searchDir;
|
|
120
|
+
let configPath = null;
|
|
121
|
+
// Search up to 10 levels up
|
|
122
|
+
for (let i = 0; i < 10; i++) {
|
|
123
|
+
const candidatePath = path.join(currentDir, configFileName);
|
|
124
|
+
if (fs.existsSync(candidatePath)) {
|
|
125
|
+
configPath = candidatePath;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
const parentDir = path.dirname(currentDir);
|
|
129
|
+
if (parentDir === currentDir) {
|
|
130
|
+
// Reached root directory
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
currentDir = parentDir;
|
|
134
|
+
}
|
|
135
|
+
if (!configPath) {
|
|
136
|
+
return {};
|
|
137
|
+
}
|
|
138
|
+
// Read and parse the config file
|
|
139
|
+
const fileContent = fs.readFileSync(configPath, 'utf-8');
|
|
140
|
+
const config = JSON.parse(fileContent);
|
|
141
|
+
// Validate that it's an object
|
|
142
|
+
if (typeof config !== 'object' || config === null) {
|
|
143
|
+
console.warn(`AXON: Invalid config file at ${configPath}: must be a JSON object`);
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
// Convert string log level to enum if present
|
|
147
|
+
if (config.level && typeof config.level === 'string') {
|
|
148
|
+
const levelStr = config.level.toUpperCase();
|
|
149
|
+
if (levelStr in types_1.LogLevel && isNaN(Number(levelStr))) {
|
|
150
|
+
config.level = types_1.LogLevel[levelStr];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return config;
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
// Silently ignore file read/parse errors
|
|
157
|
+
if (error instanceof Error && error.message.includes('JSON')) {
|
|
158
|
+
console.warn(`AXON: Failed to parse config file: ${error.message}`);
|
|
159
|
+
}
|
|
160
|
+
return {};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Merges configuration from multiple sources with proper precedence
|
|
165
|
+
* Precedence order (highest to lowest): constructor > environment > file > defaults
|
|
166
|
+
* @param constructorConfig - Configuration passed to Logger constructor
|
|
167
|
+
* @param startDir - Directory to start searching for config file (optional)
|
|
168
|
+
* @returns Fully resolved configuration with all fields populated
|
|
169
|
+
*/
|
|
170
|
+
function mergeConfigurations(constructorConfig, startDir) {
|
|
171
|
+
// Load from all sources
|
|
172
|
+
const fileConfig = loadFromFile(startDir);
|
|
173
|
+
const envConfig = loadFromEnvironment();
|
|
174
|
+
// Merge with precedence: constructor > env > file > defaults
|
|
175
|
+
const merged = {
|
|
176
|
+
...types_1.DEFAULT_CONFIG,
|
|
177
|
+
...fileConfig,
|
|
178
|
+
...envConfig,
|
|
179
|
+
...constructorConfig,
|
|
180
|
+
// Handle nested objects specially - only merge if they are valid objects
|
|
181
|
+
fieldAliases: (() => {
|
|
182
|
+
// If constructor provides fieldAliases, use it (even if invalid - validation will catch it)
|
|
183
|
+
if (constructorConfig.fieldAliases !== undefined) {
|
|
184
|
+
// If it's a valid object, merge with defaults
|
|
185
|
+
if (typeof constructorConfig.fieldAliases === 'object' &&
|
|
186
|
+
constructorConfig.fieldAliases !== null &&
|
|
187
|
+
!Array.isArray(constructorConfig.fieldAliases)) {
|
|
188
|
+
return {
|
|
189
|
+
...types_1.DEFAULT_CONFIG.fieldAliases,
|
|
190
|
+
...(fileConfig.fieldAliases && typeof fileConfig.fieldAliases === 'object' ? fileConfig.fieldAliases : {}),
|
|
191
|
+
...(envConfig.fieldAliases && typeof envConfig.fieldAliases === 'object' ? envConfig.fieldAliases : {}),
|
|
192
|
+
...constructorConfig.fieldAliases
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// Return invalid value as-is for validation to catch
|
|
196
|
+
return constructorConfig.fieldAliases;
|
|
197
|
+
}
|
|
198
|
+
// Otherwise merge from other sources
|
|
199
|
+
return {
|
|
200
|
+
...types_1.DEFAULT_CONFIG.fieldAliases,
|
|
201
|
+
...(fileConfig.fieldAliases && typeof fileConfig.fieldAliases === 'object' ? fileConfig.fieldAliases : {}),
|
|
202
|
+
...(envConfig.fieldAliases && typeof envConfig.fieldAliases === 'object' ? envConfig.fieldAliases : {})
|
|
203
|
+
};
|
|
204
|
+
})(),
|
|
205
|
+
// Ensure environment is always set
|
|
206
|
+
environment: (0, types_1.detectEnvironment)()
|
|
207
|
+
};
|
|
208
|
+
return merged;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=ConfigLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/logger/ConfigLoader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWH,kDAiEC;AAQD,oCAuDC;AASD,kDA4CC;AA9LD,uCAAyB;AACzB,2CAA6B;AAC7B,mCAAoG;AAEpG;;;;GAIG;AACH,SAAgB,mBAAmB;IACjC,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,qCAAqC;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QAC1D,IAAI,QAAQ,IAAI,gBAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,KAAK,GAAG,gBAAQ,CAAC,QAAiC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACnD,CAAC;IAED,6CAA6C;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,gBAAgB,GAAG,QAAkD,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC;QAClC,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC7C,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAChH,MAAM,CAAC,SAAS,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAA6B,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QAC9D,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,cAAc,GAAG,KAAK,KAAK,MAAM,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,QAAiB;IAC5C,MAAM,SAAS,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,cAAc,CAAC;IAEtC,IAAI,CAAC;QACH,qEAAqE;QACrE,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,4BAA4B;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,UAAU,GAAG,aAAa,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,yBAAyB;gBACzB,MAAM;YACR,CAAC;YACD,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEvC,+BAA+B;QAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,gCAAgC,UAAU,yBAAyB,CAAC,CAAC;YAClF,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,8CAA8C;QAC9C,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,QAAQ,IAAI,gBAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,KAAK,GAAG,gBAAQ,CAAC,QAAiC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yCAAyC;QACzC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,iBAA+B,EAC/B,QAAiB;IAEjB,wBAAwB;IACxB,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IAExC,6DAA6D;IAC7D,MAAM,MAAM,GAAmB;QAC7B,GAAG,sBAAc;QACjB,GAAG,UAAU;QACb,GAAG,SAAS;QACZ,GAAG,iBAAiB;QACpB,yEAAyE;QACzE,YAAY,EAAE,CAAC,GAAG,EAAE;YAClB,4FAA4F;YAC5F,IAAI,iBAAiB,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjD,8CAA8C;gBAC9C,IAAI,OAAO,iBAAiB,CAAC,YAAY,KAAK,QAAQ;oBAClD,iBAAiB,CAAC,YAAY,KAAK,IAAI;oBACvC,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;oBACnD,OAAO;wBACL,GAAG,sBAAc,CAAC,YAAY;wBAC9B,GAAG,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1G,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,OAAO,SAAS,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvG,GAAG,iBAAiB,CAAC,YAAY;qBAClC,CAAC;gBACJ,CAAC;gBACD,qDAAqD;gBACrD,OAAO,iBAAiB,CAAC,YAAmB,CAAC;YAC/C,CAAC;YACD,qCAAqC;YACrC,OAAO;gBACL,GAAG,sBAAc,CAAC,YAAY;gBAC9B,GAAG,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1G,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,OAAO,SAAS,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;aACxG,CAAC;QACJ,CAAC,CAAC,EAAE;QACJ,mCAAmC;QACnC,WAAW,EAAE,IAAA,yBAAiB,GAAE;KACjC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger class
|
|
3
|
+
* Main logging interface for AXON framework
|
|
4
|
+
*/
|
|
5
|
+
import { LogLevel, LogEntry, LoggerConfig, ResolvedConfig } from './types';
|
|
6
|
+
import { FileManager } from '../file-manager/FileManager';
|
|
7
|
+
import { BrowserFileManager } from '../file-manager/BrowserFileManager';
|
|
8
|
+
/**
|
|
9
|
+
* Logger class
|
|
10
|
+
* Provides methods for logging at different severity levels with metadata support
|
|
11
|
+
*/
|
|
12
|
+
export declare class Logger {
|
|
13
|
+
private config;
|
|
14
|
+
private globalMetadata;
|
|
15
|
+
private serializer;
|
|
16
|
+
private fileManager;
|
|
17
|
+
private buffer;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new Logger instance
|
|
20
|
+
* @param config - Configuration options for the logger
|
|
21
|
+
* @throws Error if configuration values are invalid
|
|
22
|
+
*/
|
|
23
|
+
constructor(config: LoggerConfig);
|
|
24
|
+
/**
|
|
25
|
+
* Logs a debug message
|
|
26
|
+
* @param message - The log message
|
|
27
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
28
|
+
*/
|
|
29
|
+
debug(message: string, metadata?: Record<string, any>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Logs an info message
|
|
32
|
+
* @param message - The log message
|
|
33
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
34
|
+
*/
|
|
35
|
+
info(message: string, metadata?: Record<string, any>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Logs a warning message
|
|
38
|
+
* @param message - The log message
|
|
39
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
40
|
+
*/
|
|
41
|
+
warn(message: string, metadata?: Record<string, any>): void;
|
|
42
|
+
/**
|
|
43
|
+
* Logs an error message
|
|
44
|
+
* @param message - The log message
|
|
45
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
46
|
+
*/
|
|
47
|
+
error(message: string, metadata?: Record<string, any>): void;
|
|
48
|
+
/**
|
|
49
|
+
* Logs a fatal error message
|
|
50
|
+
* @param message - The log message
|
|
51
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
52
|
+
*/
|
|
53
|
+
fatal(message: string, metadata?: Record<string, any>): void;
|
|
54
|
+
/**
|
|
55
|
+
* Internal log method that handles log level filtering and entry creation
|
|
56
|
+
* @param level - The log level
|
|
57
|
+
* @param message - The log message
|
|
58
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
59
|
+
*/
|
|
60
|
+
private log;
|
|
61
|
+
/**
|
|
62
|
+
* Applies metadata filtering based on configured patterns
|
|
63
|
+
* @param metadata - Metadata object to filter
|
|
64
|
+
* @returns Filtered metadata object
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
private applyMetadataFilter;
|
|
68
|
+
/**
|
|
69
|
+
* Sets global metadata that will be included in all subsequent log entries
|
|
70
|
+
* @param metadata - Metadata object to set as global
|
|
71
|
+
*/
|
|
72
|
+
setGlobalMetadata(metadata: Record<string, any>): void;
|
|
73
|
+
/**
|
|
74
|
+
* Clears all global metadata
|
|
75
|
+
*/
|
|
76
|
+
clearGlobalMetadata(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Inserts a section marker into the log
|
|
79
|
+
* Section markers help identify and extract specific sections of logs
|
|
80
|
+
* @param label - The label for the section marker
|
|
81
|
+
*/
|
|
82
|
+
mark(label: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* Flushes buffered log entries to storage
|
|
85
|
+
* Forces immediate write of all pending entries
|
|
86
|
+
*/
|
|
87
|
+
flush(): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Closes the logger
|
|
90
|
+
* Flushes remaining entries and releases resources
|
|
91
|
+
*/
|
|
92
|
+
close(): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Gets the current configuration
|
|
95
|
+
* @returns The resolved configuration object
|
|
96
|
+
*/
|
|
97
|
+
getConfig(): Readonly<ResolvedConfig>;
|
|
98
|
+
/**
|
|
99
|
+
* Gets the file manager (for testing purposes)
|
|
100
|
+
* @returns The file manager instance
|
|
101
|
+
*/
|
|
102
|
+
getFileManager(): FileManager | BrowserFileManager;
|
|
103
|
+
/**
|
|
104
|
+
* Gets the current global metadata (for testing purposes)
|
|
105
|
+
* @returns Copy of the current global metadata
|
|
106
|
+
*/
|
|
107
|
+
getGlobalMetadata(): Readonly<Record<string, any>>;
|
|
108
|
+
/**
|
|
109
|
+
* Gets the current buffer (for testing purposes)
|
|
110
|
+
* @returns Copy of the current buffer
|
|
111
|
+
*/
|
|
112
|
+
getBuffer(): ReadonlyArray<string | LogEntry>;
|
|
113
|
+
/**
|
|
114
|
+
* Sets the log level at runtime
|
|
115
|
+
* @param level - The new log level
|
|
116
|
+
* @throws Error if the log level is invalid
|
|
117
|
+
*/
|
|
118
|
+
setLevel(level: LogLevel): void;
|
|
119
|
+
/**
|
|
120
|
+
* Updates configuration at runtime
|
|
121
|
+
* Only non-critical settings can be updated (level, bufferSize, flushInterval, fieldAliases, omitNullValues, delimiter)
|
|
122
|
+
* Critical settings like outputPath, maxFileSize, and rotationInterval cannot be changed at runtime
|
|
123
|
+
* @param partial - Partial configuration to update
|
|
124
|
+
* @throws Error if trying to update critical settings or if validation fails
|
|
125
|
+
*/
|
|
126
|
+
updateConfig(partial: Partial<LoggerConfig>): void;
|
|
127
|
+
/**
|
|
128
|
+
* Logs a fatal error message synchronously (bypasses buffering)
|
|
129
|
+
* Use for critical errors that must be written immediately
|
|
130
|
+
* @param message - The log message
|
|
131
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
132
|
+
*/
|
|
133
|
+
fatalSync(message: string, metadata?: Record<string, any>): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Logs an error message synchronously (bypasses buffering)
|
|
136
|
+
* Use for critical errors that must be written immediately
|
|
137
|
+
* @param message - The log message
|
|
138
|
+
* @param metadata - Optional metadata to attach to the log entry
|
|
139
|
+
*/
|
|
140
|
+
errorSync(message: string, metadata?: Record<string, any>): Promise<void>;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/logger/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AA+FxE;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;;OAIG;gBACS,MAAM,EAAE,YAAY;IAiChC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI5D;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI3D;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI3D;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI5D;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI5D;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAsDX;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAItD;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACH,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC;IAIrC;;;OAGG;IACH,cAAc,IAAI,WAAW,GAAG,kBAAkB;IAIlD;;;OAGG;IACH,iBAAiB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIlD;;;OAGG;IACH,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC;IAI7C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAQ/B;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAmDlD;;;;;OAKG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C/E;;;;;OAKG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CA8ChF"}
|