Skip to content

Commit

Permalink
Setup logger for website (#2960)
Browse files Browse the repository at this point in the history
  • Loading branch information
notmd committed Apr 28, 2023
1 parent e82a717 commit 49a832f
Show file tree
Hide file tree
Showing 7 changed files with 196 additions and 12 deletions.
165 changes: 163 additions & 2 deletions website/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions website/package.json
Expand Up @@ -60,6 +60,7 @@
"next-auth": "^4.20.1",
"next-i18next": "^13.2.2",
"nodemailer": "^6.9.1",
"pino": "^8.11.0",
"postcss-focus-visible": "^7.1.0",
"react": "18.2.0",
"react-chartjs-2": "^5.2.0",
Expand Down
1 change: 0 additions & 1 deletion website/src/components/Chat/ChatSection.tsx
Expand Up @@ -24,7 +24,6 @@ export const ChatSection = ({ chatId }: { chatId: string | null }) => {
const cache = getConfigCache();
const model = modelInfos.find((model) => model.name === cache?.model_config_name);
if (model && cache) {
console.log(`resseting form`);
form.reset(cache);
}
}, [form.reset, modelInfos]);
Expand Down
20 changes: 20 additions & 0 deletions website/src/lib/logger.ts
@@ -0,0 +1,20 @@
import pino, { multistream } from "pino";
const isDev = process.env.NODE_ENV === "development";

const streams = [{ stream: process.stdout }];

// this should be imported from server side code only
export const logger = pino(
{
level: isDev ? "debug" : "info",
transport: isDev
? {
target: "pino-pretty",
options: {
colorize: true,
},
}
: undefined,
},
multistream(streams)
);
15 changes: 8 additions & 7 deletions website/src/pages/api/account/delete.ts
@@ -1,6 +1,7 @@
import { AxiosError } from "axios";
import type { NextApiRequest, NextApiResponse } from "next";
import { getToken } from "next-auth/jwt";
import { logger } from "src/lib/logger";
import { createApiClientFromUser } from "src/lib/oasst_client_factory";
import { createInferenceClient } from "src/lib/oasst_inference_client";
import prisma from "src/lib/prismadb";
Expand All @@ -16,35 +17,35 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
return res.status(400).end();
}

console.log("deleting user", token.sub);
logger.info("deleting user", token.sub);
try {
const backendUserCore = await getBackendUserCore(token.sub);
const client = createApiClientFromUser(backendUserCore);
await client.delete_account(backendUserCore);
console.log(`user ${token.sub} deleted from data backend`);
logger.info(`user ${token.sub} deleted from data backend`);
} catch (err) {
console.error("could not delete user from data backend", err);
logger.info("could not delete user from data backend", err);
return res.status(500).end();
}

try {
const client = createInferenceClient(token);
await client.delete_account();
console.log(`user ${token.sub} deleted from inference`);
logger.info(`user ${token.sub} deleted from inference`);
} catch (err) {
if (err instanceof AxiosError && err.response.status === 404) {
// user does not exist in the inference backend, they have not send any chats
// that is okay, we can continue
console.log(`user ${token.sub} does not exist on inference`);
logger.info(`user ${token.sub} does not exist on inference`);
} else {
console.error("could not delete user from inference backend", err);
logger.info("could not delete user from inference backend", err);
// we don't return here, the other account is already deleted, we have to power through it
}
}

try {
await prisma.user.delete({ where: { id: token.sub } });
console.log(`user ${token.sub} deleted from webdb`);
logger.info(`user ${token.sub} deleted from webdb`);
} catch (err) {
console.error("could not delete user from webdb", err);
// we don't return here, the other account is already deleted, we have to power through
Expand Down
3 changes: 2 additions & 1 deletion website/src/pages/api/chat/assistant_message.ts
@@ -1,6 +1,7 @@
import { AxiosError } from "axios";
import { withoutRole } from "src/lib/auth";
import { isChatEnable } from "src/lib/isChatEnable";
import { logger } from "src/lib/logger";
import { createInferenceClient } from "src/lib/oasst_inference_client";
import { InferencePostAssistantMessageParams } from "src/types/Chat";

Expand All @@ -15,9 +16,9 @@ const handler = withoutRole("banned", async (req, res, token) => {
return res.status(200).json(data);
} catch (e) {
if (!(e instanceof AxiosError)) {
logger.error(e);
return res.status(500).end();
}
console.log(e);
return res.status(e.response?.status ?? 500).json({ message: e.response?.data.detail ?? "Something went wrong" });
}
});
Expand Down

0 comments on commit 49a832f

Please sign in to comment.