Skip to content

Commit 6e22343

Browse files
committed
refactor: replace consola with loglayer
1 parent 1ce4837 commit 6e22343

29 files changed

Lines changed: 544 additions & 66 deletions

backend/bun.lock

Lines changed: 369 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919
"@elysiajs/server-timing": "^1.4.0",
2020
"@elysiajs/static": "^1.4.7",
2121
"@elysiajs/swagger": "^1.3.1",
22+
"@loglayer/transport-simple-pretty-terminal": "^2.3.1",
2223
"@sinclair/typebox": "^0.34.47",
23-
"consola": "^3.4.2",
2424
"drizzle-orm": "^0.45.1",
2525
"elysia": "^1.4.22",
2626
"ioredis": "^5.9.1",
27+
"loglayer": "^8.4.0",
2728
"zod": "^3.25.76"
2829
},
2930
"devDependencies": {

backend/src/api/usage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { consola } from "consola";
21
import { Elysia } from "elysia";
32
import { findApiKey, sumCompletionTokenUsage } from "@/db";
43
import { apiKeyPlugin } from "@/plugins/apiKeyPlugin";
4+
import { createLogger } from "@/utils/logger";
55

6-
const logger = consola.withTag("usageQuery");
6+
const logger = createLogger("usageQuery");
77

88
export const usageQueryApi = new Elysia({
99
detail: {

backend/src/api/v1/completions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Refactored to use adapter pattern for multi-API format support
44
*/
55

6-
import { consola } from "consola";
76
import { Elysia, t } from "elysia";
87
import type { ModelWithProvider } from "@/adapters/types";
98
import {
109
getRequestAdapter,
1110
getResponseAdapter,
1211
getUpstreamAdapter,
1312
} from "@/adapters";
13+
import { createLogger } from "@/utils/logger";
1414
import { getModelsWithProviderBySystemName } from "@/db";
1515
import { apiKeyPlugin, type ApiKey } from "@/plugins/apiKeyPlugin";
1616
import { apiKeyRateLimitPlugin, consumeTokens } from "@/plugins/apiKeyRateLimitPlugin";
@@ -47,7 +47,7 @@ import {
4747
type ReqIdContext,
4848
} from "@/utils/reqIdHandler";
4949

50-
const logger = consola.withTag("completionsApi");
50+
const logger = createLogger("completionsApi");
5151

5252
// =============================================================================
5353
// Request Schema

backend/src/api/v1/embeddings.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { CreateEmbeddingResponse } from "openai/resources";
2-
import { consola } from "consola";
32
import { Elysia, t } from "elysia";
43
import { apiKeyPlugin } from "@/plugins/apiKeyPlugin";
4+
import { createLogger } from "@/utils/logger";
55
import { apiKeyRateLimitPlugin, consumeTokens } from "@/plugins/apiKeyRateLimitPlugin";
66
import { rateLimitPlugin } from "@/plugins/rateLimitPlugin";
77
import { addEmbedding, type EmbeddingRecord } from "@/utils/embeddings";
@@ -31,7 +31,7 @@ function normalizeEmbedding(embedding: number[] | string): number[] {
3131
return embedding;
3232
}
3333

34-
const logger = consola.withTag("embeddingsApi");
34+
const logger = createLogger("embeddingsApi");
3535

3636
// OpenAI-compatible embeddings request schema
3737
interface EmbeddingCreateBody {

backend/src/api/v1/messages.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Provides Anthropic-compatible API format for clients
44
*/
55

6-
import { consola } from "consola";
76
import { Elysia, t } from "elysia";
87
import type { ModelWithProvider } from "@/adapters/types";
98
import {
109
getRequestAdapter,
1110
getResponseAdapter,
1211
getUpstreamAdapter,
1312
} from "@/adapters";
13+
import { createLogger } from "@/utils/logger";
1414
import { getModelsWithProviderBySystemName } from "@/db";
1515
import { apiKeyPlugin, type ApiKey } from "@/plugins/apiKeyPlugin";
1616
import {
@@ -45,7 +45,7 @@ import {
4545
import type { CachedResponseType } from "@/db/schema";
4646
import { safeParseToolArgs } from "@/utils/json";
4747

48-
const logger = consola.withTag("messagesApi");
48+
const logger = createLogger("messagesApi");
4949

5050
// =============================================================================
5151
// Request Schema

backend/src/api/v1/models.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { consola } from "consola";
21
import { Elysia } from "elysia";
32
import { listModels, listProviders } from "@/db";
3+
import { createLogger } from "@/utils/logger";
44

5-
const logger = consola.withTag("modelsQuery");
5+
const logger = createLogger("modelsQuery");
66

77
export const modelsQueryApi = new Elysia().get("/models", async () => {
88
logger.debug("queryModels");

backend/src/api/v1/responses.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Provides OpenAI Response API format for clients (agent/agentic interactions)
44
*/
55

6-
import { consola } from "consola";
76
import { Elysia, t } from "elysia";
87
import type { ModelWithProvider } from "@/adapters/types";
98
import {
109
getRequestAdapter,
1110
getResponseAdapter,
1211
getUpstreamAdapter,
1312
} from "@/adapters";
13+
import { createLogger } from "@/utils/logger";
1414
import { getModelsWithProviderBySystemName } from "@/db";
1515
import { apiKeyPlugin, type ApiKey } from "@/plugins/apiKeyPlugin";
1616
import { apiKeyRateLimitPlugin, consumeTokens } from "@/plugins/apiKeyRateLimitPlugin";
@@ -41,7 +41,7 @@ import {
4141
} from "@/utils/reqIdHandler";
4242
import type { CachedResponseType } from "@/db/schema";
4343

44-
const logger = consola.withTag("responsesApi");
44+
const logger = createLogger("responsesApi");
4545

4646
// =============================================================================
4747
// Request Schema

backend/src/db/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { consola } from "consola";
1+
import { createLogger } from "@/utils/logger";
22
import { and, asc, count, desc, eq, like, not, sql, sum } from "drizzle-orm";
33
import { drizzle } from "drizzle-orm/bun-sql";
44
import { migrate } from "drizzle-orm/bun-sql/migrator";
@@ -10,15 +10,15 @@ const globalThis_ = globalThis as typeof globalThis & {
1010
db: ReturnType<typeof drizzle>;
1111
};
1212

13-
const logger = consola.withTag("database");
13+
const logger = createLogger("database");
1414

1515
const db = (() => {
1616
if (!globalThis_.db) {
1717
globalThis_.db = drizzle({
1818
connection: DATABASE_URL,
1919
schema: schema,
2020
});
21-
logger.success("connection created");
21+
logger.info("connection created");
2222
}
2323
return globalThis_.db;
2424
})();

backend/src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { cors } from "@elysiajs/cors";
22
import { serverTiming } from "@elysiajs/server-timing";
33
import { swagger } from "@elysiajs/swagger";
44
// Note: @elysiajs/static is disabled in current Bun version, using manual file serving instead
5-
import { consola } from "consola";
5+
import { log } from "@/utils/logger";
66
import { Elysia } from "elysia";
77
import { access, readFile, stat } from "node:fs/promises";
88

@@ -216,8 +216,8 @@ const app = new Elysia()
216216
idleTimeout: 255,
217217
});
218218

219-
consola.log(
220-
`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`,
219+
log.info(
220+
`Elysia is running at ${app.server?.hostname}:${app.server?.port}`,
221221
);
222222

223223
export type App = typeof app;

0 commit comments

Comments
 (0)