Skip to content

Commit c48c093

Browse files
backend logging (#224)
1 parent d281523 commit c48c093

File tree

4 files changed

+104
-13
lines changed

4 files changed

+104
-13
lines changed

packages/backend/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
},
2323
"dependencies": {
2424
"@gitbeaker/rest": "^40.5.1",
25+
"@logtail/node": "^0.5.2",
26+
"@logtail/winston": "^0.5.2",
2527
"@octokit/rest": "^21.0.2",
2628
"@sentry/cli": "^2.42.2",
2729
"@sentry/node": "^9.3.0",
@@ -47,4 +49,4 @@
4749
"strip-json-comments": "^5.0.1",
4850
"winston": "^3.15.0"
4951
}
50-
}
52+
}

packages/backend/src/environment.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,6 @@ export const REDIS_URL = getEnv(process.env.REDIS_URL, 'redis://localhost:6379')
4343

4444
export const SENTRY_BACKEND_DSN = getEnv(process.env.SENTRY_BACKEND_DSN);
4545
export const SENTRY_ENVIRONMENT = getEnv(process.env.SENTRY_ENVIRONMENT, 'unknown')!;
46+
47+
export const LOGTAIL_TOKEN = getEnv(process.env.LOGTAIL_TOKEN);
48+
export const LOGTAIL_HOST = getEnv(process.env.LOGTAIL_HOST);

packages/backend/src/logger.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import winston, { format } from 'winston';
2-
import { SOURCEBOT_LOG_LEVEL } from './environment.js';
2+
import { SOURCEBOT_LOG_LEVEL, LOGTAIL_TOKEN, LOGTAIL_HOST } from './environment.js';
3+
import { Logtail } from '@logtail/node';
4+
import { LogtailTransport } from '@logtail/winston';
35

46
const { combine, colorize, timestamp, prettyPrint, errors, printf, label: labelFn } = format;
57

8+
69
const createLogger = (label: string) => {
710
return winston.createLogger({
811
level: SOURCEBOT_LOG_LEVEL,
@@ -28,6 +31,13 @@ const createLogger = (label: string) => {
2831
}),
2932
),
3033
}),
34+
...(LOGTAIL_TOKEN && LOGTAIL_HOST ? [
35+
new LogtailTransport(
36+
new Logtail(LOGTAIL_TOKEN, {
37+
endpoint: LOGTAIL_HOST,
38+
})
39+
)
40+
] : []),
3141
]
3242
});
3343
}

yarn.lock

Lines changed: 87 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1413,6 +1413,51 @@
14131413
"@lezer/highlight" "^1.0.0"
14141414
"@lezer/lr" "^1.4.0"
14151415

1416+
"@logtail/core@^0.5.2":
1417+
version "0.5.2"
1418+
resolved "https://registry.npmjs.org/@logtail/core/-/core-0.5.2.tgz#a5fb36731848fbb47a3b1176c643a405e40d674d"
1419+
integrity sha512-mkQqGFwtZ06x2xsj6kOiEZeLSlPeTDArNOEeB9Q1VHxduRHJFInG7soix8+P8xeaoJx+7itvbUySB0XBlnmLSA==
1420+
dependencies:
1421+
"@logtail/tools" "^0.5.2"
1422+
"@logtail/types" "^0.5.2"
1423+
serialize-error "8.1.0"
1424+
1425+
"@logtail/node@^0.5.2":
1426+
version "0.5.2"
1427+
resolved "https://registry.npmjs.org/@logtail/node/-/node-0.5.2.tgz#f0d2462b6c43f6d7334858cb8769bf23162fe2e9"
1428+
integrity sha512-pSleAsbq61WdaMzYkmW+kdCfptIWmjhSvNoyAtFFuaIGNXFS2UEmnHPrvzrPxsFgBswePSGl/m1teHTeBxA+qg==
1429+
dependencies:
1430+
"@logtail/core" "^0.5.2"
1431+
"@logtail/types" "^0.5.2"
1432+
"@msgpack/msgpack" "^2.5.1"
1433+
"@types/stack-trace" "^0.0.33"
1434+
cross-fetch "^4.0.0"
1435+
minimatch "^9.0.5"
1436+
serialize-error "8.1.0"
1437+
stack-trace "0.0.10"
1438+
1439+
"@logtail/tools@^0.5.2":
1440+
version "0.5.2"
1441+
resolved "https://registry.npmjs.org/@logtail/tools/-/tools-0.5.2.tgz#b24f96f2bc65f86a928f915aa841f1ec15da2ff9"
1442+
integrity sha512-1Vg0rznoDYXWYDkz8orjKNTjK5f2eUubHN6tfJ2hHKCRRHy7y+TJpIlCQg3BilVcOvMIfiy4RbrcaFTHvDQWTQ==
1443+
dependencies:
1444+
"@logtail/types" "^0.5.2"
1445+
cross-fetch "^4.0.0"
1446+
1447+
"@logtail/types@^0.5.2":
1448+
version "0.5.2"
1449+
resolved "https://registry.npmjs.org/@logtail/types/-/types-0.5.2.tgz#f5a53963df56a0dbed3e665f39ac1c2a092071d3"
1450+
integrity sha512-G3C3XjJPW/LJS0+sanzsNLLqXHAJkhdBR8h4zFUylOtUOevtlneenGNZFjEil+h/GOb3tUySvBuP2wl51gvf0A==
1451+
1452+
"@logtail/winston@^0.5.2":
1453+
version "0.5.2"
1454+
resolved "https://registry.npmjs.org/@logtail/winston/-/winston-0.5.2.tgz#d667fc4303732ecc4baf3b40f0daa486877c7e66"
1455+
integrity sha512-eKbtw0RB1d0Cxs9qLxQskmcDjlyUolKJJluia0uNXK190SDavIY6VW/193BLSy5S7gn32V6T4kQ9yC0W6g9C9A==
1456+
dependencies:
1457+
"@logtail/node" "^0.5.2"
1458+
"@logtail/types" "^0.5.2"
1459+
winston-transport "^4.3.0"
1460+
14161461
"@mapbox/node-pre-gyp@^1.0.11":
14171462
version "1.0.11"
14181463
resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa"
@@ -1428,6 +1473,11 @@
14281473
semver "^7.3.5"
14291474
tar "^6.1.11"
14301475

1476+
"@msgpack/msgpack@^2.5.1":
1477+
version "2.8.0"
1478+
resolved "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9"
1479+
integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==
1480+
14311481
"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3":
14321482
version "3.0.3"
14331483
resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz"
@@ -3773,6 +3823,11 @@
37733823
resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.2.0.tgz#9b706af96fa06416828842397a70dfbbf1c14ded"
37743824
integrity sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==
37753825

3826+
"@types/stack-trace@^0.0.33":
3827+
version "0.0.33"
3828+
resolved "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.33.tgz#979a3fde9e721e78603b781e468ef30f0df0f049"
3829+
integrity sha512-O7in6531Bbvlb2KEsJ0dq0CHZvc3iWSR5ZYMtvGgnHA56VgriAN/AU2LorfmcvAl2xc9N5fbCTRyMRRl8nd74g==
3830+
37763831
"@types/tedious@^4.0.14":
37773832
version "4.0.14"
37783833
resolved "https://registry.yarnpkg.com/@types/tedious/-/tedious-4.0.14.tgz#868118e7a67808258c05158e9cad89ca58a2aec1"
@@ -7360,6 +7415,18 @@ logform@^2.6.0, logform@^2.6.1:
73607415
safe-stable-stringify "^2.3.1"
73617416
triple-beam "^1.3.0"
73627417

7418+
logform@^2.7.0:
7419+
version "2.7.0"
7420+
resolved "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz#cfca97528ef290f2e125a08396805002b2d060d1"
7421+
integrity sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==
7422+
dependencies:
7423+
"@colors/colors" "1.6.0"
7424+
"@types/triple-beam" "^1.3.2"
7425+
fecha "^4.2.0"
7426+
ms "^2.1.1"
7427+
safe-stable-stringify "^2.3.1"
7428+
triple-beam "^1.3.0"
7429+
73637430
loglevel@^1.9.1:
73647431
version "1.9.2"
73657432
resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz"
@@ -7608,7 +7675,7 @@ minimatch@^8.0.2:
76087675
dependencies:
76097676
brace-expansion "^2.0.1"
76107677

7611-
minimatch@^9.0.1, minimatch@^9.0.4:
7678+
minimatch@^9.0.1, minimatch@^9.0.4, minimatch@^9.0.5:
76127679
version "9.0.5"
76137680
resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz"
76147681
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
@@ -8755,7 +8822,7 @@ read-pkg@^3.0.0:
87558822
normalize-package-data "^2.3.2"
87568823
path-type "^3.0.0"
87578824

8758-
readable-stream@^3.4.0, readable-stream@^3.6.0:
8825+
readable-stream@^3.4.0, readable-stream@^3.6.0, readable-stream@^3.6.2:
87598826
version "3.6.2"
87608827
resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
87618828
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -9068,6 +9135,13 @@ send@0.19.0:
90689135
range-parser "~1.2.1"
90699136
statuses "2.0.1"
90709137

9138+
serialize-error@8.1.0:
9139+
version "8.1.0"
9140+
resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67"
9141+
integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==
9142+
dependencies:
9143+
type-fest "^0.20.2"
9144+
90719145
serve-static@1.16.2:
90729146
version "1.16.2"
90739147
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
@@ -9357,7 +9431,7 @@ split@0.3:
93579431
dependencies:
93589432
through "2"
93599433

9360-
stack-trace@0.0.x:
9434+
stack-trace@0.0.10, stack-trace@0.0.x:
93619435
version "0.0.10"
93629436
resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"
93639437
integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
@@ -9532,14 +9606,7 @@ stringify-entities@^4.0.0:
95329606
character-entities-html4 "^2.0.0"
95339607
character-entities-legacy "^3.0.0"
95349608

9535-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
9536-
version "6.0.1"
9537-
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
9538-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
9539-
dependencies:
9540-
ansi-regex "^5.0.1"
9541-
9542-
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
9609+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
95439610
version "6.0.1"
95449611
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
95459612
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -10389,6 +10456,15 @@ wide-align@^1.1.2:
1038910456
dependencies:
1039010457
string-width "^1.0.2 || 2 || 3 || 4"
1039110458

10459+
winston-transport@^4.3.0:
10460+
version "4.9.0"
10461+
resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz#3bba345de10297654ea6f33519424560003b3bf9"
10462+
integrity sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==
10463+
dependencies:
10464+
logform "^2.7.0"
10465+
readable-stream "^3.6.2"
10466+
triple-beam "^1.3.0"
10467+
1039210468
winston-transport@^4.7.0:
1039310469
version "4.8.0"
1039410470
resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.8.0.tgz"

0 commit comments

Comments
 (0)