create logger package
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
"@fastify/websocket": "^8.3.1",
|
||||
"@openpanel/common": "workspace:*",
|
||||
"@openpanel/db": "workspace:*",
|
||||
"@openpanel/logger": "workspace:*",
|
||||
"@openpanel/queue": "workspace:*",
|
||||
"@openpanel/redis": "workspace:*",
|
||||
"@openpanel/trpc": "workspace:*",
|
||||
|
||||
@@ -1,25 +1,6 @@
|
||||
import type { TransportTargetOptions } from 'pino';
|
||||
import pino from 'pino';
|
||||
import { createLogger } from '@openpanel/logger';
|
||||
|
||||
const targets: TransportTargetOptions[] =
|
||||
process.env.NODE_ENV === 'production'
|
||||
? [
|
||||
{
|
||||
target: '@baselime/pino-transport',
|
||||
options: { baselimeApiKey: process.env.BASELIME_API_KEY },
|
||||
},
|
||||
]
|
||||
: [
|
||||
{
|
||||
target: 'pino-pretty',
|
||||
},
|
||||
];
|
||||
|
||||
const transport = pino.transport({
|
||||
targets,
|
||||
});
|
||||
|
||||
export const logger = pino(transport);
|
||||
export const logger = createLogger({ target: 'api' });
|
||||
|
||||
export function logInfo(msg: string, obj?: unknown) {
|
||||
logger.info(obj, msg);
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"@bull-board/api": "^5.13.0",
|
||||
"@bull-board/express": "^5.13.0",
|
||||
"@openpanel/common": "workspace:*",
|
||||
"@openpanel/logger": "workspace:*",
|
||||
"@openpanel/db": "workspace:*",
|
||||
"@openpanel/queue": "workspace:*",
|
||||
"@openpanel/redis": "workspace:*",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { logger } from '@/utils/logger';
|
||||
import { getReferrerWithQuery, parseReferrer } from '@/utils/parse-referrer';
|
||||
import { isUserAgentSet, parseUserAgent } from '@/utils/parse-user-agent';
|
||||
import { isSameDomain, parsePath } from '@/utils/url';
|
||||
@@ -192,15 +193,31 @@ export async function incomingEvent(job: Job<EventsQueuePayloadIncomingEvent>) {
|
||||
duration,
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
job.log(`Failed to update duration: ${e.message}`);
|
||||
} catch (error) {
|
||||
logger.error(
|
||||
{
|
||||
error,
|
||||
prevEventJobStatus: await prevEventJob
|
||||
.getState()
|
||||
.catch(() => 'unknown'),
|
||||
},
|
||||
`Failed update delayed job`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
await prevEventJob.promote();
|
||||
} catch (e) {
|
||||
job.log(`Failed to promote job: ${e.message}`);
|
||||
} catch (error) {
|
||||
logger.error(
|
||||
{
|
||||
error,
|
||||
prevEventJobStatus: await prevEventJob
|
||||
.getState()
|
||||
.catch(() => 'unknown'),
|
||||
},
|
||||
`Failed to promote job`
|
||||
);
|
||||
}
|
||||
}
|
||||
} else if (payload.name !== 'screen_view') {
|
||||
|
||||
3
apps/worker/src/utils/logger.ts
Normal file
3
apps/worker/src/utils/logger.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { createLogger } from '@openpanel/logger';
|
||||
|
||||
export const logger = createLogger({ target: 'worker' });
|
||||
24
packages/logger/index.ts
Normal file
24
packages/logger/index.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import type { TransportTargetOptions } from 'pino';
|
||||
import pino from 'pino';
|
||||
|
||||
export function createLogger({ target }: { target: string }) {
|
||||
const targets: TransportTargetOptions[] =
|
||||
process.env.NODE_ENV === 'production'
|
||||
? [
|
||||
{
|
||||
target: '@baselime/pino-transport',
|
||||
options: { baselimeApiKey: process.env.BASELIME_API_KEY, target },
|
||||
},
|
||||
]
|
||||
: [
|
||||
{
|
||||
target: 'pino-pretty',
|
||||
},
|
||||
];
|
||||
|
||||
const transport = pino.transport({
|
||||
targets,
|
||||
});
|
||||
|
||||
return pino(transport);
|
||||
}
|
||||
32
packages/logger/package.json
Normal file
32
packages/logger/package.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "@openpanel/logger",
|
||||
"version": "0.0.1",
|
||||
"main": "index.ts",
|
||||
"scripts": {
|
||||
"lint": "eslint .",
|
||||
"format": "prettier --check \"**/*.{mjs,ts,md,json}\"",
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@baselime/pino-transport": "^0.1.5",
|
||||
"pino": "^8.17.2",
|
||||
"pino-pretty": "^10.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openpanel/eslint-config": "workspace:*",
|
||||
"@openpanel/prettier-config": "workspace:*",
|
||||
"@openpanel/tsconfig": "workspace:*",
|
||||
"date-fns": "^3.3.1",
|
||||
"eslint": "^8.48.0",
|
||||
"prettier": "^3.0.3",
|
||||
"prisma": "^5.1.1",
|
||||
"typescript": "^5.2.2"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"root": true,
|
||||
"extends": [
|
||||
"@openpanel/eslint-config/base"
|
||||
]
|
||||
},
|
||||
"prettier": "@openpanel/prettier-config"
|
||||
}
|
||||
12
packages/logger/tsconfig.json
Normal file
12
packages/logger/tsconfig.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "@openpanel/tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
},
|
||||
"tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
|
||||
},
|
||||
"include": ["."],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
Reference in New Issue
Block a user