Merge pull request #105 from ente-io/add-more-logs
Add process stats logs
This commit is contained in:
commit
00bb606c0a
|
@ -13,9 +13,12 @@ import {
|
|||
enableSharedArrayBufferSupport,
|
||||
handleDockIconHideOnAutoLaunch,
|
||||
handleUpdates,
|
||||
logSystemInfo,
|
||||
} from './utils/main';
|
||||
import { initSentry } from './services/sentry';
|
||||
import { setupLogging } from './utils/logging';
|
||||
import { isDev } from './utils/common';
|
||||
import { setupMainProcessStatsLogger } from './utils/processStats';
|
||||
|
||||
let mainWindow: BrowserWindow;
|
||||
|
||||
|
@ -42,7 +45,7 @@ setupMainHotReload();
|
|||
|
||||
setupNextElectronServe();
|
||||
|
||||
setupLogging();
|
||||
setupLogging(isDev);
|
||||
|
||||
const gotTheLock = app.requestSingleInstanceLock();
|
||||
if (!gotTheLock) {
|
||||
|
@ -65,6 +68,8 @@ if (!gotTheLock) {
|
|||
// initialization and is ready to create browser windows.
|
||||
// Some APIs can only be used after this event occurs.
|
||||
app.on('ready', async () => {
|
||||
logSystemInfo();
|
||||
setupMainProcessStatsLogger();
|
||||
initSentry();
|
||||
mainWindow = await createWindow();
|
||||
const tray = setupTrayItem(mainWindow);
|
||||
|
|
|
@ -50,10 +50,12 @@ import { fixHotReloadNext12 } from './utils/preload';
|
|||
import { isFolder, getDirFiles } from './api/fs';
|
||||
import { convertHEIC } from './api/heicConvert';
|
||||
import { setupLogging } from './utils/logging';
|
||||
import { setupRendererProcessStatsLogger } from './utils/processStats';
|
||||
import { runFFmpegCmd } from './api/ffmpeg';
|
||||
|
||||
fixHotReloadNext12();
|
||||
setupLogging();
|
||||
setupRendererProcessStatsLogger();
|
||||
|
||||
const windowObject: any = window;
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import { getSkipAppVersion, setSkipAppVersion } from './userPreference';
|
|||
import fetch from 'node-fetch';
|
||||
import { isPlatformMac } from '../utils/main';
|
||||
import { logErrorSentry } from './sentry';
|
||||
import ElectronLog from 'electron-log';
|
||||
|
||||
const FIVE_MIN_IN_MICROSECOND = 5 * 60 * 1000;
|
||||
|
||||
|
@ -83,6 +84,7 @@ export async function checkForUpdateAndNotify(mainWindow: BrowserWindow) {
|
|||
}
|
||||
|
||||
export function updateAndRestart() {
|
||||
ElectronLog.log('user quit the app');
|
||||
setIsAppQuitting(true);
|
||||
autoUpdater.quitAndInstall();
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
import log from 'electron-log';
|
||||
import { LOG_FILENAME, MAX_LOG_SIZE } from '../config';
|
||||
|
||||
export function setupLogging() {
|
||||
export function setupLogging(isDev?: boolean) {
|
||||
log.transports.file.fileName = LOG_FILENAME;
|
||||
log.transports.file.maxSize = MAX_LOG_SIZE;
|
||||
if (!isDev) {
|
||||
log.transports.console.level = false;
|
||||
}
|
||||
log.transports.file.format =
|
||||
'[{y}-{m}-{d}T{h}:{i}:{s}{z}] [{level}]{scope} {text}';
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ import {
|
|||
checkForUpdateAndNotify,
|
||||
setupAutoUpdater,
|
||||
} from '../services/appUpdater';
|
||||
import ElectronLog from 'electron-log';
|
||||
import os from 'os';
|
||||
|
||||
export function handleUpdates(mainWindow: BrowserWindow) {
|
||||
if (!isDev) {
|
||||
|
@ -102,3 +104,10 @@ export async function handleDockIconHideOnAutoLaunch() {
|
|||
export function enableSharedArrayBufferSupport() {
|
||||
app.commandLine.appendSwitch('enable-features', 'SharedArrayBuffer');
|
||||
}
|
||||
|
||||
export function logSystemInfo() {
|
||||
const systemVersion = process.getSystemVersion();
|
||||
const osName = process.platform;
|
||||
const osRelease = os.release();
|
||||
ElectronLog.info({ osName, osRelease, systemVersion });
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import {
|
|||
import { setIsAppQuitting } from '../main';
|
||||
import autoLauncher from '../services/autoLauncher';
|
||||
import { isPlatformMac } from './main';
|
||||
import ElectronLog from 'electron-log';
|
||||
|
||||
export function buildContextMenu(
|
||||
mainWindow: BrowserWindow,
|
||||
|
@ -76,6 +77,7 @@ export function buildContextMenu(
|
|||
{
|
||||
label: 'Quit ente',
|
||||
click: function () {
|
||||
ElectronLog.log('user quit the app');
|
||||
setIsAppQuitting(true);
|
||||
app.quit();
|
||||
},
|
||||
|
|
39
src/utils/processStats.ts
Normal file
39
src/utils/processStats.ts
Normal file
|
@ -0,0 +1,39 @@
|
|||
import ElectronLog from 'electron-log';
|
||||
import { webFrame } from 'electron/renderer';
|
||||
|
||||
const FIVE_MINUTES_IN_MICROSECONDS = 30 * 1000;
|
||||
|
||||
async function logMainProcessStats() {
|
||||
const systemMemoryInfo = process.getSystemMemoryInfo();
|
||||
const cpuUsage = process.getCPUUsage();
|
||||
const processMemoryInfo = await process.getProcessMemoryInfo();
|
||||
const heapStatistics = process.getHeapStatistics();
|
||||
|
||||
ElectronLog.log('main process stats', {
|
||||
systemMemoryInfo,
|
||||
cpuUsage,
|
||||
processMemoryInfo,
|
||||
heapStatistics,
|
||||
});
|
||||
}
|
||||
|
||||
async function logRendererProcessStats() {
|
||||
const blinkMemoryInfo = process.getBlinkMemoryInfo();
|
||||
const heapStatistics = process.getHeapStatistics();
|
||||
const processMemoryInfo = process.getProcessMemoryInfo();
|
||||
const webFrameResourceUsage = webFrame.getResourceUsage();
|
||||
ElectronLog.log('renderer process stats', {
|
||||
blinkMemoryInfo,
|
||||
heapStatistics,
|
||||
processMemoryInfo,
|
||||
webFrameResourceUsage,
|
||||
});
|
||||
}
|
||||
|
||||
export function setupMainProcessStatsLogger() {
|
||||
setInterval(logMainProcessStats, FIVE_MINUTES_IN_MICROSECONDS);
|
||||
}
|
||||
|
||||
export function setupRendererProcessStatsLogger() {
|
||||
setInterval(logRendererProcessStats, FIVE_MINUTES_IN_MICROSECONDS);
|
||||
}
|
Loading…
Reference in a new issue