constructor(
		maxBufferSize = 1000,
		logLevel = "info",
		flushInterval = 30000,
		maxFileSize = 10 * 1024 * 1024,
	) {
		this.#logBuffer = new Map();
		this.#maxBufferSize = maxBufferSize;
		this.#logLevel = logLevel;
		this.#logFileName = constants.LOG_FILE_NAME;
		this.#flushInterval = flushInterval;
		this.#maxFileSize = maxFileSize;
		this.#startAutoFlush(); // Automatically flush logs at intervals
		this.#setupAppLifecycleHandlers(); // Handle app lifecycle events for safe log saving
	}
Creates a new Logger instance.
@constructor
@param {number} [maxBufferSize=1000] - Maximum number of log entries to keep in buffer.
@param {string} [logLevel="info"] - Minimum log level to record ("error", "warn", "info", "debug").
@param {number} [flushInterval=30000] - Interval in milliseconds for automatic log flushing.