feat(debug): improve logging and add file to debug

This commit is contained in:
George Lima 2019-05-03 00:38:30 -03:00
parent 2e4f557f5a
commit 26a1f7e8ad
6 changed files with 38 additions and 18 deletions

View File

@ -4,7 +4,7 @@ import path from 'path';
import cp from 'child_process';
import getBinariesPath from './get-binaries-path';
import log from './logger';
import { log } from './logger';
// eslint-disable-next-line
export default (): Promise<*> => new Promise((resolve, reject) => {

View File

@ -15,7 +15,7 @@ import Queue from 'p-queue';
// eslint-disable-next-line
import { app, mainWindow } from '../electron';
import getBinariesPath from './get-binaries-path';
import log from './logger';
import { log } from './logger';
const queue = new Queue({ concurrency: 2, autoStart: false });
@ -49,10 +49,7 @@ const FILES: Array<{ name: string, hash: string }> = [
];
// eslint-disable-next-line max-len
const checkSha256 = (
pathToFile: string,
expectedHash: string,
) => new Promise((resolve, reject) => {
const checkSha256 = (pathToFile: string, expectedHash: string) => new Promise((resolve, reject) => {
fs.readFile(pathToFile, (err, file) => {
if (err) return reject(new Error(err));
@ -63,10 +60,7 @@ const checkSha256 = (
});
// eslint-disable-next-line max-len
const downloadFile = ({
file,
pathToSave,
}): Promise<*> => new Promise((resolve, reject) => {
const downloadFile = ({ file, pathToSave }): Promise<*> => new Promise((resolve, reject) => {
if (!mainWindow.isDestroyed()) mainWindow.webContents.send('zcashd-params-download', `Downloading ${file.name}...`);
log(`Downloading ${file.name}...`);

View File

@ -1,4 +1,29 @@
// @flow
import fs from 'fs';
import path from 'path';
import { app } from '../electron'; // eslint-disable-line
// eslint-disable-next-line
export default (...message: Array<*>) => console.log('[Zcash Daemon]', ...message);
const getLogsFileName = () => path.join(app.getPath('userData'), 'main-process-logs.txt');
// eslint-disable-next-line no-console
export const log = (...message: Array<*>) => {
console.log('[Zcash Daemon]', ...message); // eslint-disable-line
fs.appendFileSync(
getLogsFileName(),
message
.map((msg) => {
if (msg instanceof Error) {
return `${JSON.stringify(msg, Object.getOwnPropertyNames(msg))}\n`;
}
if (typeof msg === 'object') {
return `${JSON.stringify(msg)}\n`;
}
return `${msg}\n`;
})
.join(''),
);
};
export const cleanLogs = () => fs.writeFileSync(getLogsFileName(), '');

View File

@ -2,7 +2,7 @@
import os from 'os';
import log from './logger';
import { log } from './logger';
import fetchWindowsParams from './fetch-windows-params';
import runUnixFetchParams from './fetch-unix-params';
@ -10,7 +10,5 @@ import runUnixFetchParams from './fetch-unix-params';
export default (): Promise<*> => {
log('Fetching params');
return os.platform() === 'win32'
? fetchWindowsParams()
: runUnixFetchParams();
return os.platform() === 'win32' ? fetchWindowsParams() : runUnixFetchParams();
};

View File

@ -20,7 +20,7 @@ import getOsFolder from './get-os-folder';
import getDaemonName from './get-daemon-name';
import fetchParams from './run-fetch-params';
import { locateZcashConf } from './locate-zcash-conf';
import log from './logger';
import { log } from './logger';
import store from '../electron-store';
import { parseZcashConf, parseCmdArgs, generateArgsFromConf } from './parse-zcash-conf';
import { isTestnet } from '../is-testnet';

View File

@ -11,7 +11,7 @@ import { autoUpdater } from 'electron-updater';
import isDev from 'electron-is-dev';
import { registerDebugShortcut } from '../utils/debug-shortcut';
import runDaemon from './daemon/zcashd-child-process';
import zcashLog from './daemon/logger';
import { log as zcashLog, cleanLogs } from './daemon/logger';
import getZecPrice from '../services/zec-price';
import store from './electron-store';
import { handleDeeplink } from './handle-deeplink';
@ -113,6 +113,9 @@ app.on('ready', async () => {
console.log('[Process Argv]', process.argv); // eslint-disable-line
// Reset old logs on startup
cleanLogs();
if (process.env.NODE_ENV === 'test') {
zcashLog('Not running daemon, please run the mock API');
return;