Files
mattermostest/src/main/diagnostics/steps/step0.logLevel.ts
2024-03-11 19:55:34 -04:00

52 lines
1.5 KiB
TypeScript

// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import path from 'path';
import {app} from 'electron';
import type {MainLogger} from 'electron-log';
import type {DiagnosticStepResponse} from 'types/diagnostics';
import loggerHooks from './internal/loggerHooks';
import {dateTimeInFilename} from './internal/utils';
import DiagnosticsStep from '../DiagnosticStep';
const stepName = 'Step-0';
const stepDescriptiveName = 'logConfig';
const run = async (logger: MainLogger): Promise<DiagnosticStepResponse> => {
try {
const filename = `diagnostics_${dateTimeInFilename()}.txt`;
const pathToFile = path.join(app.getPath('userData'), `diagnostics/${filename}`);
logger.transports.file.resolvePath = () => pathToFile;
logger.transports.file.fileName = filename;
logger.hooks.push(...loggerHooks(logger));
logger.transports.file.level = 'silly';
logger.transports.console.level = 'silly';
logger.debug('ConfigureLogger', {filename, pathToFile});
return {
message: `${stepName} finished successfully`,
succeeded: true,
};
} catch (error) {
logger.warn(`Diagnostics ${stepName} Failure`, {error});
return {
message: `${stepName} failed`,
succeeded: false,
payload: error,
};
}
};
const Step0 = new DiagnosticsStep({
name: `diagnostic-${stepName}: ${stepDescriptiveName}`,
retries: 0,
run,
});
export default Step0;