summaryrefslogtreecommitdiffhomepage
path: root/js/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/util')
-rw-r--r--js/src/util/log.ts29
1 files changed, 26 insertions, 3 deletions
diff --git a/js/src/util/log.ts b/js/src/util/log.ts
index 8f7157140..8ba0a15cf 100644
--- a/js/src/util/log.ts
+++ b/js/src/util/log.ts
@@ -1,4 +1,27 @@
+import fs from "node:fs";
+import path from "node:path";
+import { AppPath } from "../app/path";
export namespace Log {
+ const write = {
+ out: (msg: string) => {
+ process.stdout.write(msg);
+ },
+ err: (msg: string) => {
+ process.stderr.write(msg);
+ },
+ };
+
+ export function file(directory: string) {
+ const out = Bun.file(
+ path.join(AppPath.data(directory), "opencode.out.log"),
+ );
+ const err = Bun.file(
+ path.join(AppPath.data(directory), "opencode.err.log"),
+ );
+ write["out"] = (msg) => out.write(msg);
+ write["err"] = (msg) => err.write(msg);
+ }
+
export function create(tags?: Record<string, any>) {
tags = tags || {};
@@ -9,14 +32,14 @@ export namespace Log {
})
.map(([key, value]) => `${key}=${value}`)
.join(" ");
- return [prefix, message];
+ return [prefix, message].join(" ");
}
const result = {
info(message?: any, extra?: Record<string, any>) {
- console.log(...build(message, extra));
+ write.out(build(message, extra));
},
error(message?: any, extra?: Record<string, any>) {
- console.error(...build(message, extra));
+ write.err(build(message, extra));
},
tag(key: string, value: string) {
if (tags) tags[key] = value;