@rabbit-company/logger 5.4.0 → 5.5.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 CHANGED
@@ -49,6 +49,9 @@ logger.error("Database connection failed", {
49
49
  db: "primary",
50
50
  });
51
51
 
52
+ // Dynamic log levels
53
+ logger.log(Levels.WARN, "High memory usage detected", { usage: "85%" });
54
+
52
55
  // Audit logging
53
56
  logger.audit("User login", {
54
57
  userId: "usr_123",
@@ -528,6 +528,21 @@ export declare class Logger {
528
528
  * @param entry The log entry to process
529
529
  */
530
530
  private processEntry;
531
+ /**
532
+ * Logs a message at the specified level with optional metadata.
533
+ *
534
+ * This is the primary logging method that all other level-specific methods
535
+ * (error, warn, info, etc.) delegate to. It provides fine-grained control
536
+ * over the log level and is useful for dynamic logging scenarios.
537
+ *
538
+ * @param level - The severity level for this log entry (use Levels enum)
539
+ * @param message - The log message to record
540
+ * @param metadata - Optional structured data to attach to the log entry
541
+ *
542
+ * @example
543
+ * logger.log(Levels.ERROR, "Database connection failed", { error: error.stack });
544
+ */
545
+ log(level: Levels, message: string, metadata?: Record<string, any>): void;
531
546
  /**
532
547
  * Logs an error message (highest severity)
533
548
  * @param message The error message
package/module/logger.js CHANGED
@@ -143,29 +143,32 @@ class Logger {
143
143
  transport.log(entry);
144
144
  }
145
145
  }
146
+ log(level, message, metadata) {
147
+ this.processEntry(this.createLogEntry(message, level, metadata));
148
+ }
146
149
  error(message, metadata) {
147
- this.processEntry(this.createLogEntry(message, 0 /* ERROR */, metadata));
150
+ this.log(0 /* ERROR */, message, metadata);
148
151
  }
149
152
  warn(message, metadata) {
150
- this.processEntry(this.createLogEntry(message, 1 /* WARN */, metadata));
153
+ this.log(1 /* WARN */, message, metadata);
151
154
  }
152
155
  audit(message, metadata) {
153
- this.processEntry(this.createLogEntry(message, 2 /* AUDIT */, metadata));
156
+ this.log(2 /* AUDIT */, message, metadata);
154
157
  }
155
158
  info(message, metadata) {
156
- this.processEntry(this.createLogEntry(message, 3 /* INFO */, metadata));
159
+ this.log(3 /* INFO */, message, metadata);
157
160
  }
158
161
  http(message, metadata) {
159
- this.processEntry(this.createLogEntry(message, 4 /* HTTP */, metadata));
162
+ this.log(4 /* HTTP */, message, metadata);
160
163
  }
161
164
  debug(message, metadata) {
162
- this.processEntry(this.createLogEntry(message, 5 /* DEBUG */, metadata));
165
+ this.log(5 /* DEBUG */, message, metadata);
163
166
  }
164
167
  verbose(message, metadata) {
165
- this.processEntry(this.createLogEntry(message, 6 /* VERBOSE */, metadata));
168
+ this.log(6 /* VERBOSE */, message, metadata);
166
169
  }
167
170
  silly(message, metadata) {
168
- this.processEntry(this.createLogEntry(message, 7 /* SILLY */, metadata));
171
+ this.log(7 /* SILLY */, message, metadata);
169
172
  }
170
173
  addTransport(transport) {
171
174
  this.transports.push(transport);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rabbit-company/logger",
3
- "version": "5.4.0",
3
+ "version": "5.5.0",
4
4
  "description": "A simple and lightweight logger",
5
5
  "main": "./module/logger.js",
6
6
  "type": "module",