Skip to content

Commit 8e01dfa

Browse files
committed
Use winston for logging
1 parent 8c23092 commit 8e01dfa

File tree

4 files changed

+235
-13
lines changed

4 files changed

+235
-13
lines changed

bootstrap/esbuild.mts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ const prebuildifyPlugin = ({
3636

3737
const prebuilds = await fg(["node_modules/**/prebuilds/**/*.node"]);
3838

39-
// Get target ABI version if specified
4039
const targets =
4140
typeof options.target === "string"
4241
? [options.target]
@@ -51,7 +50,6 @@ const prebuildifyPlugin = ({
5150
.map((target) => getAbi(target, "node")),
5251
);
5352

54-
// Copy relevant prebuilds
5553
const parsedPlatforms = prebuildifyTargets?.split(",");
5654
for (const prebuild of prebuilds) {
5755
const filename = path.basename(prebuild);

bootstrap/index.ts

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import service from "@neuralegion/os-service";
22
import { exec } from "child_process";
3-
import fs from "fs";
43
import os from "os";
54
import path from "path";
65
import sudo from "@vscode/sudo-prompt";
6+
import { createLogger, format, transports } from "winston";
77

88
const isWindows = os.platform() === "win32";
99
const serviceName = "atest1";
@@ -119,15 +119,29 @@ switch (process.argv[2]) {
119119
// Need to redirect all output to a log file on Windows.
120120
// On Linux, it'll go to the systemd logs.
121121
if (isWindows) {
122-
const logStream = fs.createWriteStream(
123-
path.join(__dirname, "service.log"),
124-
{ flags: "a" },
125-
);
126-
// @ts-expect-error Undefined/null type mismatch: Type 'Error | null | undefined' is not assignable to type 'Error | undefined'.
127-
process.stdout.write = process.stderr.write =
128-
logStream.write.bind(logStream);
129-
process.on("uncaughtException", function (err) {
130-
console.error(err && err.stack ? err.stack : err);
122+
const logger = createLogger({
123+
format: format.combine(
124+
format.timestamp({
125+
format: "YYYY-MM-DD HH:mm:ss",
126+
}),
127+
format.printf(
128+
(info) => `${info.timestamp} ${info.level}: ${info.message}`,
129+
),
130+
),
131+
transports: [
132+
new transports.File({
133+
filename: path.join(__dirname, "service.log"),
134+
}),
135+
],
136+
});
137+
138+
console.log = (message: any) => logger.info(message);
139+
console.info = (message: any) => logger.info(message);
140+
console.warn = (message: any) => logger.warn(message);
141+
console.error = (message: any) => logger.error(message);
142+
143+
process.on("uncaughtException", (err) => {
144+
logger.error(err.stack || err.toString());
131145
});
132146
}
133147

bootstrap/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
},
1212
"dependencies": {
1313
"@neuralegion/os-service": "^1.2.6",
14-
"@vscode/sudo-prompt": "^9.3.1"
14+
"@vscode/sudo-prompt": "^9.3.1",
15+
"winston": "^3.17.0"
1516
},
1617
"devDependencies": {
1718
"@types/node-abi": "^3.0.3",

0 commit comments

Comments
 (0)