summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-08-31 17:11:04 -0500
committerGitHub <[email protected]>2025-08-31 17:11:04 -0500
commit65f0bea1463e21b881a1577c695a110156d02b75 (patch)
treee8626e03c5589474900c1372982717f6675b04c5 /packages
parente4cc05a975e006f5baf476d3783c7a1c8f61cf3e (diff)
downloadopencode-65f0bea1463e21b881a1577c695a110156d02b75.tar.gz
opencode-65f0bea1463e21b881a1577c695a110156d02b75.zip
ignore: better error logging (#2346)
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/util/log.ts9
1 files changed, 8 insertions, 1 deletions
diff --git a/packages/opencode/src/util/log.ts b/packages/opencode/src/util/log.ts
index 1b321523a..b4cdd920a 100644
--- a/packages/opencode/src/util/log.ts
+++ b/packages/opencode/src/util/log.ts
@@ -83,6 +83,13 @@ export namespace Log {
await Promise.all(filesToDelete.map((file) => fs.unlink(file).catch(() => {})))
}
+ function formatError(error: Error, depth = 0): string {
+ const result = error.message
+ return error.cause instanceof Error && depth < 10
+ ? result + " Caused by: " + formatError(error.cause, depth + 1)
+ : result
+ }
+
let last = Date.now()
export function create(tags?: Record<string, any>) {
tags = tags || {}
@@ -103,7 +110,7 @@ export namespace Log {
.filter(([_, value]) => value !== undefined && value !== null)
.map(([key, value]) => {
const prefix = `${key}=`
- if (value instanceof Error) return prefix + value.message
+ if (value instanceof Error) return prefix + formatError(value)
if (typeof value === "object") return prefix + JSON.stringify(value)
return prefix + value
})