summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useLogger.ts
diff options
context:
space:
mode:
authorSeth Troisi <[email protected]>2025-05-21 07:36:22 +0000
committerGitHub <[email protected]>2025-05-21 00:36:22 -0700
commitcd13c5881b7cb60c0fca9e674c0344815ca0070d (patch)
tree661f72841f8005f07b510be5d0d987224ade31cd /packages/cli/src/ui/hooks/useLogger.ts
parentbda472f1476476a1bcd4a2b7050ab2823a6d3bb5 (diff)
Add Logger for command history (#435)
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;
+};