summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useLogger.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/hooks/useLogger.ts')
-rw-r--r--packages/cli/src/ui/hooks/useLogger.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/useLogger.ts b/packages/cli/src/ui/hooks/useLogger.ts
new file mode 100644
index 00000000..080c3da9
--- /dev/null
+++ b/packages/cli/src/ui/hooks/useLogger.ts
@@ -0,0 +1,32 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { useState, useEffect } from 'react';
+import { Logger } from '@gemini-code/server';
+
+/**
+ * Hook to manage the logger instance.
+ */
+export const useLogger = () => {
+ const [logger, setLogger] = useState<Logger | null>(null);
+
+ useEffect(() => {
+ const newLogger = new Logger();
+ /**
+ * Start async initialization, no need to await. Using await slows down the
+ * time from launch to see the gemini-cli prompt and it's better to not save
+ * messages than for the cli to hanging waiting for the logger to loading.
+ */
+ newLogger
+ .initialize()
+ .then(() => {
+ setLogger(newLogger);
+ })
+ .catch(() => {});
+ }, []);
+
+ return logger;
+};