@arikajs/logging 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ArikaJs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,136 @@
1
+ ## Arika Logging
2
+
3
+ `@arikajs/logging` provides a flexible, channel-based logging system for the ArikaJS framework.
4
+
5
+ It allows applications to write logs to multiple destinations (console, files, external services) using a unified API.
6
+
7
+ ---
8
+
9
+ ## ✨ Features
10
+
11
+ - **Multiple log channels**: Separate outputs for different needs
12
+ - **Driver-based architecture**: Pluggable backends (console, file, etc.)
13
+ - **Log levels**: Compatible with standard levels (debug, info, warning, error, etc.)
14
+ - **Stackable channels**: Combine multiple channels
15
+ - **File & console drivers (v1)**: Essential logging outputs
16
+ - **Contextual logging**: Pass metadata with log messages
17
+ - **TypeScript-first**: Strongly typed interface
18
+
19
+ ---
20
+
21
+ ## 📦 Installation
22
+
23
+ ```bash
24
+ npm install @arikajs/logging
25
+ # or
26
+ yarn add @arikajs/logging
27
+ # or
28
+ pnpm add @arikajs/logging
29
+ ```
30
+
31
+ ---
32
+
33
+ ## 🚀 Basic Usage
34
+
35
+ ```ts
36
+ import { Log } from '@arikajs/logging';
37
+
38
+ Log.info('Application started');
39
+ Log.error('Something went wrong', { userId: 1 });
40
+ ```
41
+
42
+ ### 📂 Log Channels
43
+
44
+ ```ts
45
+ Log.channel('daily').warning('Low disk space');
46
+ ```
47
+
48
+ ---
49
+
50
+ ## ⚙️ Configuration
51
+
52
+ ```ts
53
+ export default {
54
+ default: process.env.LOG_CHANNEL || 'stack',
55
+
56
+ channels: {
57
+ stack: {
58
+ driver: 'stack',
59
+ channels: ['single'],
60
+ },
61
+
62
+ single: {
63
+ driver: 'file',
64
+ path: './storage/logs/arika.log',
65
+ level: process.env.LOG_LEVEL || 'debug',
66
+ },
67
+
68
+ daily: {
69
+ driver: 'daily',
70
+ path: './storage/logs/arika.log',
71
+ level: process.env.LOG_LEVEL || 'debug',
72
+ days: 14,
73
+ },
74
+
75
+ console: {
76
+ driver: 'console',
77
+ level: process.env.LOG_LEVEL || 'debug',
78
+ },
79
+ },
80
+ };
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 🔌 Supported Drivers (v1)
86
+
87
+ | Driver | Status | Description |
88
+ | :--- | :--- | :--- |
89
+ | **Console** | ✅ Supported | Standard output logging |
90
+ | **File** | ✅ Supported | Single file logging |
91
+ | **Daily** | ✅ Supported | Date-based rotating log files |
92
+ | **Stack** | ✅ Supported | Multi-channel composite logging |
93
+ | External services | ⏳ Planned | Slack, Papertrail, etc. |
94
+
95
+ ---
96
+
97
+ ## 🔗 Integration
98
+
99
+ - **`@arikajs/http`** → request logs
100
+ - **`@arikajs/queue`** → job logs
101
+ - **`@arikajs/events`** → event logs
102
+ - **`@arikajs/auth`** → security logs
103
+
104
+ ---
105
+
106
+ ## 🧠 Architecture (High Level)
107
+
108
+ ```
109
+ logging/
110
+ ├── src/
111
+ │ ├── LogManager.ts
112
+ │ ├── Logger.ts
113
+ │ ├── Drivers/
114
+ │ │ ├── ConsoleDriver.ts
115
+ │ │ └── FileDriver.ts
116
+ │ ├── Contracts/
117
+ │ │ └── Logger.ts
118
+ │ └── index.ts
119
+ ├── tests/
120
+ ├── package.json
121
+ ├── tsconfig.json
122
+ ├── README.md
123
+ └── LICENSE
124
+ ```
125
+
126
+ ---
127
+
128
+ ## 📄 License
129
+
130
+ `@arikajs/logging` is open-source software licensed under the **MIT License**.
131
+
132
+ ---
133
+
134
+ ## 🧭 Philosophy
135
+
136
+ > "Logs tell the story your app can’t."
@@ -0,0 +1,12 @@
1
+ export interface Logger {
2
+ emergency(message: string, context?: any): void;
3
+ alert(message: string, context?: any): void;
4
+ critical(message: string, context?: any): void;
5
+ error(message: string, context?: any): void;
6
+ warning(message: string, context?: any): void;
7
+ notice(message: string, context?: any): void;
8
+ info(message: string, context?: any): void;
9
+ debug(message: string, context?: any): void;
10
+ log(level: string, message: string, context?: any): void;
11
+ }
12
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/Contracts/Logger.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,MAAM;IACnB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC5D"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/Contracts/Logger.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { Logger } from '../Contracts/Logger';
2
+ export declare class ConsoleDriver implements Logger {
3
+ private config;
4
+ private colors;
5
+ private levels;
6
+ constructor(config?: any);
7
+ log(level: string, message: string, context?: any): void;
8
+ emergency(message: string, context?: any): void;
9
+ alert(message: string, context?: any): void;
10
+ critical(message: string, context?: any): void;
11
+ error(message: string, context?: any): void;
12
+ warning(message: string, context?: any): void;
13
+ notice(message: string, context?: any): void;
14
+ info(message: string, context?: any): void;
15
+ debug(message: string, context?: any): void;
16
+ }
17
+ //# sourceMappingURL=ConsoleDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleDriver.d.ts","sourceRoot":"","sources":["../../src/Drivers/ConsoleDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,qBAAa,aAAc,YAAW,MAAM;IAuB5B,OAAO,CAAC,MAAM;IAtB1B,OAAO,CAAC,MAAM,CASZ;IAEF,OAAO,CAAC,MAAM,CASZ;gBAEkB,MAAM,GAAE,GAAQ;IAEpC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAmCxD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;CAC9C"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsoleDriver = void 0;
4
+ class ConsoleDriver {
5
+ constructor(config = {}) {
6
+ this.config = config;
7
+ this.colors = {
8
+ emergency: '\x1b[41m\x1b[37m', // White on Red
9
+ alert: '\x1b[41m\x1b[37m', // White on Red
10
+ critical: '\x1b[41m\x1b[37m', // White on Red
11
+ error: '\x1b[31m', // Red
12
+ warning: '\x1b[33m', // Yellow
13
+ notice: '\x1b[34m', // Blue
14
+ info: '\x1b[32m', // Green
15
+ debug: '\x1b[90m', // Gray
16
+ };
17
+ this.levels = {
18
+ emergency: 0,
19
+ alert: 1,
20
+ critical: 2,
21
+ error: 3,
22
+ warning: 4,
23
+ notice: 5,
24
+ info: 6,
25
+ debug: 7,
26
+ };
27
+ }
28
+ log(level, message, context) {
29
+ const configLevel = this.config.level || 'debug';
30
+ if (this.levels[level] > this.levels[configLevel]) {
31
+ return;
32
+ }
33
+ const timestamp = new Date().toISOString().replace('T', ' ').split('.')[0];
34
+ const color = this.colors[level] || '';
35
+ const reset = '\x1b[0m';
36
+ const contextStr = context ? ' ' + JSON.stringify(context) : '';
37
+ const output = `[${timestamp}] ${color}${level.toUpperCase()}${reset}: ${message}${contextStr}`;
38
+ switch (level) {
39
+ case 'emergency':
40
+ case 'alert':
41
+ case 'critical':
42
+ case 'error':
43
+ console.error(output);
44
+ break;
45
+ case 'warning':
46
+ console.warn(output);
47
+ break;
48
+ case 'info':
49
+ case 'notice':
50
+ console.info(output);
51
+ break;
52
+ case 'debug':
53
+ console.debug(output);
54
+ break;
55
+ default:
56
+ console.log(output);
57
+ }
58
+ }
59
+ emergency(message, context) { this.log('emergency', message, context); }
60
+ alert(message, context) { this.log('alert', message, context); }
61
+ critical(message, context) { this.log('critical', message, context); }
62
+ error(message, context) { this.log('error', message, context); }
63
+ warning(message, context) { this.log('warning', message, context); }
64
+ notice(message, context) { this.log('notice', message, context); }
65
+ info(message, context) { this.log('info', message, context); }
66
+ debug(message, context) { this.log('debug', message, context); }
67
+ }
68
+ exports.ConsoleDriver = ConsoleDriver;
69
+ //# sourceMappingURL=ConsoleDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleDriver.js","sourceRoot":"","sources":["../../src/Drivers/ConsoleDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Logger } from '../Contracts/Logger';
2
+ import { FileDriver } from './FileDriver';
3
+ export declare class DailyDriver extends FileDriver implements Logger {
4
+ constructor(config: any);
5
+ }
6
+ //# sourceMappingURL=DailyDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DailyDriver.d.ts","sourceRoot":"","sources":["../../src/Drivers/DailyDriver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,WAAY,SAAQ,UAAW,YAAW,MAAM;gBAC7C,MAAM,EAAE,GAAG;CAO1B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DailyDriver = void 0;
7
+ const FileDriver_1 = require("./FileDriver");
8
+ const path_1 = __importDefault(require("path"));
9
+ class DailyDriver extends FileDriver_1.FileDriver {
10
+ constructor(config) {
11
+ const date = new Date().toISOString().split('T')[0];
12
+ const parsedPath = path_1.default.parse(config.path || 'app.log');
13
+ const dailyPath = path_1.default.join(parsedPath.dir, `${parsedPath.name}-${date}${parsedPath.ext}`);
14
+ super({ ...config, path: dailyPath });
15
+ }
16
+ }
17
+ exports.DailyDriver = DailyDriver;
18
+ //# sourceMappingURL=DailyDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DailyDriver.js","sourceRoot":"","sources":["../../src/Drivers/DailyDriver.ts"],"names":[],"mappings":";;;;;;AAEA,6CAA0C;AAC1C,gDAAwB;AAExB,MAAa,WAAY,SAAQ,uBAAU;IACvC,YAAY,MAAW;QACnB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,cAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3F,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1C,CAAC;CACJ;AARD,kCAQC"}
@@ -0,0 +1,18 @@
1
+ import { Logger } from '../Contracts/Logger';
2
+ export declare class FileDriver implements Logger {
3
+ private config;
4
+ private filePath;
5
+ private levels;
6
+ constructor(config: any);
7
+ private ensureFileExists;
8
+ log(level: string, message: string, context?: any): void;
9
+ emergency(message: string, context?: any): void;
10
+ alert(message: string, context?: any): void;
11
+ critical(message: string, context?: any): void;
12
+ error(message: string, context?: any): void;
13
+ warning(message: string, context?: any): void;
14
+ notice(message: string, context?: any): void;
15
+ info(message: string, context?: any): void;
16
+ debug(message: string, context?: any): void;
17
+ }
18
+ //# sourceMappingURL=FileDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDriver.d.ts","sourceRoot":"","sources":["../../src/Drivers/FileDriver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,qBAAa,UAAW,YAAW,MAAM;IAczB,OAAO,CAAC,MAAM;IAb1B,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,MAAM,CASZ;gBAEkB,MAAM,EAAE,GAAG;IAK/B,OAAO,CAAC,gBAAgB;IAOxB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAaxD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;CAC9C"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FileDriver = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ class FileDriver {
10
+ constructor(config) {
11
+ this.config = config;
12
+ this.levels = {
13
+ emergency: 0,
14
+ alert: 1,
15
+ critical: 2,
16
+ error: 3,
17
+ warning: 4,
18
+ notice: 5,
19
+ info: 6,
20
+ debug: 7,
21
+ };
22
+ this.filePath = config.path || 'app.log';
23
+ this.ensureFileExists();
24
+ }
25
+ ensureFileExists() {
26
+ const dir = path_1.default.dirname(this.filePath);
27
+ if (!fs_1.default.existsSync(dir)) {
28
+ fs_1.default.mkdirSync(dir, { recursive: true });
29
+ }
30
+ }
31
+ log(level, message, context) {
32
+ const configLevel = this.config.level || 'debug';
33
+ if (this.levels[level] > this.levels[configLevel]) {
34
+ return;
35
+ }
36
+ const timestamp = new Date().toISOString().replace('T', ' ').split('.')[0];
37
+ const contextStr = context ? ' ' + JSON.stringify(context) : '';
38
+ const line = `[${timestamp}] ${level.toUpperCase()}: ${message}${contextStr}\n`;
39
+ fs_1.default.appendFileSync(this.filePath, line);
40
+ }
41
+ emergency(message, context) { this.log('emergency', message, context); }
42
+ alert(message, context) { this.log('alert', message, context); }
43
+ critical(message, context) { this.log('critical', message, context); }
44
+ error(message, context) { this.log('error', message, context); }
45
+ warning(message, context) { this.log('warning', message, context); }
46
+ notice(message, context) { this.log('notice', message, context); }
47
+ info(message, context) { this.log('info', message, context); }
48
+ debug(message, context) { this.log('debug', message, context); }
49
+ }
50
+ exports.FileDriver = FileDriver;
51
+ //# sourceMappingURL=FileDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDriver.js","sourceRoot":"","sources":["../../src/Drivers/FileDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Logger } from './Logger';
2
+ import { Logger as LoggerContract } from './Contracts/Logger';
3
+ export declare class LogManager {
4
+ protected config: any;
5
+ protected channels: Map<string, Logger>;
6
+ protected customCreators: Map<string, (config: any) => LoggerContract>;
7
+ constructor(config: any);
8
+ channel(name?: string): Logger;
9
+ protected resolve(name: string): Logger;
10
+ protected createDailyDriver(config: any): LoggerContract;
11
+ protected createConsoleDriver(config: any): LoggerContract;
12
+ protected createFileDriver(config: any): LoggerContract;
13
+ protected createStackDriver(config: any): LoggerContract;
14
+ extend(driver: string, callback: (config: any) => LoggerContract): this;
15
+ emergency(message: string, context?: any): void;
16
+ alert(message: string, context?: any): void;
17
+ critical(message: string, context?: any): void;
18
+ error(message: string, context?: any): void;
19
+ warning(message: string, context?: any): void;
20
+ notice(message: string, context?: any): void;
21
+ info(message: string, context?: any): void;
22
+ debug(message: string, context?: any): void;
23
+ log(level: string, message: string, context?: any): void;
24
+ }
25
+ //# sourceMappingURL=LogManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogManager.d.ts","sourceRoot":"","sources":["../src/LogManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9D,qBAAa,UAAU;IAIP,SAAS,CAAC,MAAM,EAAE,GAAG;IAHjC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACpD,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,cAAc,CAAC,CAAa;gBAE7D,MAAM,EAAE,GAAG;IAE1B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAUrC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAoBvC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc;IAIxD,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc;IAI1D,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc;IAIvD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,cAAc;IAkBjD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,cAAc,GAAG,IAAI;IAMvE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;CAClE"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogManager = void 0;
4
+ const Logger_1 = require("./Logger");
5
+ const ConsoleDriver_1 = require("./Drivers/ConsoleDriver");
6
+ const FileDriver_1 = require("./Drivers/FileDriver");
7
+ const DailyDriver_1 = require("./Drivers/DailyDriver");
8
+ class LogManager {
9
+ constructor(config) {
10
+ this.config = config;
11
+ this.channels = new Map();
12
+ this.customCreators = new Map();
13
+ }
14
+ channel(name) {
15
+ const channelName = name || this.config.default;
16
+ if (!this.channels.has(channelName)) {
17
+ this.channels.set(channelName, this.resolve(channelName));
18
+ }
19
+ return this.channels.get(channelName);
20
+ }
21
+ resolve(name) {
22
+ const config = this.config.channels[name];
23
+ if (!config) {
24
+ throw new Error(`Log channel [${name}] is not defined.`);
25
+ }
26
+ if (this.customCreators.has(config.driver)) {
27
+ return new Logger_1.Logger(this.customCreators.get(config.driver)(config));
28
+ }
29
+ const driverMethod = `create${config.driver.charAt(0).toUpperCase() + config.driver.slice(1)}Driver`;
30
+ if (typeof this[driverMethod] === 'function') {
31
+ return new Logger_1.Logger(this[driverMethod](config));
32
+ }
33
+ throw new Error(`Driver [${config.driver}] is not supported.`);
34
+ }
35
+ createDailyDriver(config) {
36
+ return new DailyDriver_1.DailyDriver(config);
37
+ }
38
+ createConsoleDriver(config) {
39
+ return new ConsoleDriver_1.ConsoleDriver(config);
40
+ }
41
+ createFileDriver(config) {
42
+ return new FileDriver_1.FileDriver(config);
43
+ }
44
+ createStackDriver(config) {
45
+ const channels = config.channels.map((channel) => this.channel(channel));
46
+ return new class {
47
+ log(level, message, context) {
48
+ channels.forEach((channel) => channel.log(level, message, context));
49
+ }
50
+ emergency(message, context) { this.log('emergency', message, context); }
51
+ alert(message, context) { this.log('alert', message, context); }
52
+ critical(message, context) { this.log('critical', message, context); }
53
+ error(message, context) { this.log('error', message, context); }
54
+ warning(message, context) { this.log('warning', message, context); }
55
+ notice(message, context) { this.log('notice', message, context); }
56
+ info(message, context) { this.log('info', message, context); }
57
+ debug(message, context) { this.log('debug', message, context); }
58
+ };
59
+ }
60
+ extend(driver, callback) {
61
+ this.customCreators.set(driver, callback);
62
+ return this;
63
+ }
64
+ // Proxy standard levels to the default channel
65
+ emergency(message, context) { this.channel().emergency(message, context); }
66
+ alert(message, context) { this.channel().alert(message, context); }
67
+ critical(message, context) { this.channel().critical(message, context); }
68
+ error(message, context) { this.channel().error(message, context); }
69
+ warning(message, context) { this.channel().warning(message, context); }
70
+ notice(message, context) { this.channel().notice(message, context); }
71
+ info(message, context) { this.channel().info(message, context); }
72
+ debug(message, context) { this.channel().debug(message, context); }
73
+ log(level, message, context) { this.channel().log(level, message, context); }
74
+ }
75
+ exports.LogManager = LogManager;
76
+ //# sourceMappingURL=LogManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogManager.js","sourceRoot":"","sources":["../src/LogManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Logger as LoggerContract } from './Contracts/Logger';
2
+ export declare class Logger implements LoggerContract {
3
+ protected driver: LoggerContract;
4
+ constructor(driver: LoggerContract);
5
+ emergency(message: string, context?: any): void;
6
+ alert(message: string, context?: any): void;
7
+ critical(message: string, context?: any): void;
8
+ error(message: string, context?: any): void;
9
+ warning(message: string, context?: any): void;
10
+ notice(message: string, context?: any): void;
11
+ info(message: string, context?: any): void;
12
+ debug(message: string, context?: any): void;
13
+ log(level: string, message: string, context?: any): void;
14
+ }
15
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9D,qBAAa,MAAO,YAAW,cAAc;IAC7B,SAAS,CAAC,MAAM,EAAE,cAAc;gBAAtB,MAAM,EAAE,cAAc;IAE5C,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAC3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;CAC3D"}
package/dist/Logger.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = void 0;
4
+ class Logger {
5
+ constructor(driver) {
6
+ this.driver = driver;
7
+ }
8
+ emergency(message, context) { this.driver.emergency(message, context); }
9
+ alert(message, context) { this.driver.alert(message, context); }
10
+ critical(message, context) { this.driver.critical(message, context); }
11
+ error(message, context) { this.driver.error(message, context); }
12
+ warning(message, context) { this.driver.warning(message, context); }
13
+ notice(message, context) { this.driver.notice(message, context); }
14
+ info(message, context) { this.driver.info(message, context); }
15
+ debug(message, context) { this.driver.debug(message, context); }
16
+ log(level, message, context) { this.driver.log(level, message, context); }
17
+ }
18
+ exports.Logger = Logger;
19
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;;AAGA,MAAa,MAAM;IACf,YAAsB,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAI,CAAC;IAEjD,SAAS,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5F,KAAK,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpF,QAAQ,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1F,KAAK,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtF,IAAI,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,KAAK,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpF,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACzG;AAZD,wBAYC"}
@@ -0,0 +1,21 @@
1
+ import { LogManager } from './LogManager';
2
+ import { Logger } from './Contracts/Logger';
3
+ export declare class Log {
4
+ static setManager(manager: LogManager): void;
5
+ protected static getManager(): LogManager;
6
+ static channel(name?: string): import("./Logger").Logger;
7
+ static emergency(message: string, context?: any): void;
8
+ static alert(message: string, context?: any): void;
9
+ static critical(message: string, context?: any): void;
10
+ static error(message: string, context?: any): void;
11
+ static warning(message: string, context?: any): void;
12
+ static notice(message: string, context?: any): void;
13
+ static info(message: string, context?: any): void;
14
+ static debug(message: string, context?: any): void;
15
+ static log(level: string, message: string, context?: any): void;
16
+ }
17
+ export { LogManager, Logger };
18
+ export { ConsoleDriver } from './Drivers/ConsoleDriver';
19
+ export { FileDriver } from './Drivers/FileDriver';
20
+ export { DailyDriver } from './Drivers/DailyDriver';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI5C,qBAAa,GAAG;WACE,UAAU,CAAC,OAAO,EAAE,UAAU;IAI5C,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU;WAO3B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM;WAIrB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;WAC3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;CACzE;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DailyDriver = exports.FileDriver = exports.ConsoleDriver = exports.LogManager = exports.Log = void 0;
4
+ const LogManager_1 = require("./LogManager");
5
+ Object.defineProperty(exports, "LogManager", { enumerable: true, get: function () { return LogManager_1.LogManager; } });
6
+ let logManager;
7
+ class Log {
8
+ static setManager(manager) {
9
+ logManager = manager;
10
+ }
11
+ static getManager() {
12
+ if (!logManager) {
13
+ throw new Error('Log system not configured. Please use Log.setManager() to configure.');
14
+ }
15
+ return logManager;
16
+ }
17
+ static channel(name) {
18
+ return this.getManager().channel(name);
19
+ }
20
+ static emergency(message, context) { this.getManager().emergency(message, context); }
21
+ static alert(message, context) { this.getManager().alert(message, context); }
22
+ static critical(message, context) { this.getManager().critical(message, context); }
23
+ static error(message, context) { this.getManager().error(message, context); }
24
+ static warning(message, context) { this.getManager().warning(message, context); }
25
+ static notice(message, context) { this.getManager().notice(message, context); }
26
+ static info(message, context) { this.getManager().info(message, context); }
27
+ static debug(message, context) { this.getManager().debug(message, context); }
28
+ static log(level, message, context) { this.getManager().log(level, message, context); }
29
+ }
30
+ exports.Log = Log;
31
+ var ConsoleDriver_1 = require("./Drivers/ConsoleDriver");
32
+ Object.defineProperty(exports, "ConsoleDriver", { enumerable: true, get: function () { return ConsoleDriver_1.ConsoleDriver; } });
33
+ var FileDriver_1 = require("./Drivers/FileDriver");
34
+ Object.defineProperty(exports, "FileDriver", { enumerable: true, get: function () { return FileDriver_1.FileDriver; } });
35
+ var DailyDriver_1 = require("./Drivers/DailyDriver");
36
+ Object.defineProperty(exports, "DailyDriver", { enumerable: true, get: function () { return DailyDriver_1.DailyDriver; } });
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAgCjC,2FAhCA,uBAAU,OAgCA;AA7BnB,IAAI,UAAsB,CAAC;AAE3B,MAAa,GAAG;IACL,MAAM,CAAC,UAAU,CAAC,OAAmB;QACxC,UAAU,GAAG,OAAO,CAAC;IACzB,CAAC;IAES,MAAM,CAAC,UAAU;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,IAAa;QAC/B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,QAAQ,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvG,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrG,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnG,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,OAAa,IAAU,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7H;AAzBD,kBAyBC;AAGD,yDAAwD;AAA/C,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AACnB,qDAAoD;AAA3C,0GAAA,WAAW,OAAA"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@arikajs/logging",
3
+ "version": "0.0.1",
4
+ "description": "Flexible, channel-based logging system for the ArikaJS framework.",
5
+ "license": "MIT",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "tsc -p tsconfig.json",
10
+ "build:tests": "tsc -p tsconfig.test.json",
11
+ "clean": "rm -rf dist",
12
+ "prepare": "echo skip",
13
+ "test": "npm run build && npm run build:tests && node scripts/fix-test-imports.js && node --test 'dist/tests/**/*.test.js'",
14
+ "test:watch": "npm run build && npm run build:tests && node --test --watch 'dist/tests/**/*.test.js'"
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "keywords": [
20
+ "arika",
21
+ "arika-js",
22
+ "logging",
23
+ "logger",
24
+ "log",
25
+ "channel",
26
+ "stack"
27
+ ],
28
+ "engines": {
29
+ "node": ">=20.0.0"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/arikajs/logging.git"
34
+ },
35
+ "bugs": {
36
+ "url": "https://github.com/arikajs/logging/issues"
37
+ },
38
+ "homepage": "https://github.com/arikajs/logging#readme",
39
+ "dependencies": {},
40
+ "devDependencies": {
41
+ "@types/node": "^20.11.24",
42
+ "typescript": "^5.3.3"
43
+ },
44
+ "author": "Prakash Tank"
45
+ }