Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/client/client-constants.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { app } from "electron";
import * as mkdirp from "mkdirp";
import * as net from "net";
import * as path from "path";
/**
Expand Down Expand Up @@ -43,6 +45,8 @@ const urls = {
};

const isAsar = process.mainModule.filename.indexOf("app.asar") !== -1;
const logsFolder = isAsar ? path.join(app.getPath("userData"), "logs") : path.join(root, "logs");
mkdirp.sync(logsFolder);

const pythonServerPort = {
dev: Promise.resolve(8765),
Expand All @@ -54,6 +58,7 @@ export const Constants = {
isAsar,
root,
urls,
logsFolder,
pythonServerPort,
version: packageConfig.version,
};
22 changes: 17 additions & 5 deletions src/client/logger/logger-proxy.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import * as bunyan from "bunyan";
import { app } from "electron";
import * as mkdirp from "mkdirp";
import * as path from "path";

import { Constants } from "../client-constants";
import { PrettyStream } from "./pretty-stream";

const logsFolder = Constants.isAsar ? path.join(app.getPath("userData"), "logs") : path.join(Constants.root, "logs");

mkdirp.sync(logsFolder);
const logsFolder = Constants.logsFolder;

const stream = new PrettyStream();
stream.pipe(process.stderr);
Expand All @@ -29,6 +25,22 @@ export const logger = bunyan.createLogger({
],
});

export const pythonLogger = bunyan.createLogger({
name: "BatchLabs Python",
level: "debug",
streams: [
{
stream: stream as any,
},
{
type: "rotating-file",
path: path.join(logsFolder, "python-server.log"),
period: "1d", // daily rotation
count: 3, // keep 3 back copies
},
],
});

export const renderLogger = bunyan.createLogger({
name: "BatchLabs Renderer",
level: "debug",
Expand Down
14 changes: 13 additions & 1 deletion src/client/python-process/python-rpc-server-process.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import { ChildProcess, spawn } from "child_process";
import * as fs from "fs";
import * as net from "net";
import * as path from "path";

import { Constants } from "../client-constants";
import { logger } from "../logger";
import { logger, pythonLogger } from "../logger";
import { getPythonPath } from "./python-executable";

const asarPath = path.join(Constants.root, "../python-rpc/main");
const localPath = path.join(Constants.root, "python/main.py");
const logsFolder = Constants.logsFolder;

export class PythonRpcServerProcess {
private _spawedProcess: ChildProcess;
Expand All @@ -21,6 +23,16 @@ export class PythonRpcServerProcess {
return this._getCommandLine().then((data) => {
logger.info("Python path is", data.cmd, { args: data.args });
const child = this._spawedProcess = spawn(data.cmd, [...data.args]);
pythonLogger.info("========================= STARTING PYTHON RPC SERVER PROCESS =========================");

child.stdout.on("data", (data) => {
pythonLogger.info(data);
});

child.stderr.on("data", (data) => {
pythonLogger.error(data);
});

child.on("exit", (code) => {
if (this._askForKill) {
logger.info("Python rpc server has stopped!");
Expand Down