mirror of
https://github.com/colanode/colanode.git
synced 2025-12-29 00:25:03 +01:00
Some improvements in logging
This commit is contained in:
@@ -15,7 +15,7 @@ import { CommandInput } from '@/shared/commands';
|
||||
import { commandService } from '@/main/services/command-service';
|
||||
import { bootstrapper } from '@/main/bootstrapper';
|
||||
import started from 'electron-squirrel-startup';
|
||||
import { createLogger } from '@/main/logger';
|
||||
import { closeLoggers, createLogger } from '@/main/logger';
|
||||
import { getAppIconPath } from '@/main/utils';
|
||||
|
||||
const logger = createLogger('main');
|
||||
@@ -112,6 +112,10 @@ app.on('activate', () => {
|
||||
}
|
||||
});
|
||||
|
||||
app.on('before-quit', () => {
|
||||
closeLoggers();
|
||||
});
|
||||
|
||||
// In this file you can include the rest of your app's specific main process
|
||||
// code. You can also put them in separate files and import them here.
|
||||
ipcMain.handle('init', async () => {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { app } from 'electron';
|
||||
import pino, { Level } from 'pino';
|
||||
import pino, { Level, Logger } from 'pino';
|
||||
import path from 'path';
|
||||
|
||||
const logConfig: Record<string, Level> = {
|
||||
main: 'trace',
|
||||
@@ -7,17 +8,38 @@ const logConfig: Record<string, Level> = {
|
||||
'file-service': 'trace',
|
||||
};
|
||||
|
||||
const loggers: Record<string, Logger> = {};
|
||||
const logPath = path.join(app.getPath('userData'), 'logs.log');
|
||||
|
||||
export const createLogger = (name: string) => {
|
||||
return pino({
|
||||
name,
|
||||
level: logConfig[name] || 'trace',
|
||||
transport: !app.isPackaged
|
||||
? {
|
||||
target: 'pino-pretty',
|
||||
options: {
|
||||
colorize: true,
|
||||
if (!loggers[name]) {
|
||||
loggers[name] = pino({
|
||||
name,
|
||||
level: logConfig[name] || 'trace',
|
||||
transport: app.isPackaged
|
||||
? {
|
||||
target: 'pino/file',
|
||||
options: {
|
||||
destination: logPath,
|
||||
mkdir: true,
|
||||
autoEnd: false,
|
||||
},
|
||||
}
|
||||
: {
|
||||
target: 'pino-pretty',
|
||||
options: {
|
||||
colorize: true,
|
||||
autoEnd: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
: undefined,
|
||||
});
|
||||
}
|
||||
|
||||
return loggers[name];
|
||||
};
|
||||
|
||||
export const closeLoggers = () => {
|
||||
Object.values(loggers).forEach((logger) => {
|
||||
logger.flush();
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user