Skip to content
This repository has been archived by the owner on Jul 22, 2023. It is now read-only.

Commit

Permalink
Extract logger implementations (#1716)
Browse files Browse the repository at this point in the history
Co-authored-by: crapStone <crapstone01@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1716
Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org>
Co-authored-by: crapStone <crapstone@noreply.codeberg.org>
Co-committed-by: crapStone <crapstone@noreply.codeberg.org>
  • Loading branch information
2 people authored and Epsilon_02 committed Jan 11, 2023
1 parent a31aea6 commit a02b2ba
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 55 deletions.
8 changes: 8 additions & 0 deletions frontend/angular.json
Expand Up @@ -77,6 +77,10 @@
{
"replace": "src/app/@core/services/service.module.ts",
"with": "src/app/@core/services/web.service.module.ts"
},
{
"replace": "src/app/@core/utils/logger/logger-impl.ts",
"with": "src/app/@core/utils/logger/web.logger-impl.ts"
}
],
"assets": [
Expand All @@ -103,6 +107,10 @@
{
"replace": "src/app/@core/services/service.module.ts",
"with": "src/app/@core/services/web.service.module.ts"
},
{
"replace": "src/app/@core/utils/logger/logger-impl.ts",
"with": "src/app/@core/utils/logger/web.logger-impl.ts"
}
],
"optimization": true,
Expand Down
56 changes: 1 addition & 55 deletions frontend/src/app/@core/utils/logger.ts
@@ -1,4 +1,4 @@
import { environment } from '../../../environments/environment';
import log from './logger/logger-impl';

export enum LogLevel {
TRACE = 'TRACE',
Expand All @@ -8,60 +8,6 @@ export enum LogLevel {
ERROR = 'ERROR',
}

const logImplWeb = (level: LogLevel, path: string, ...messages: any[]): void => {
let fn;
switch (level) {
case LogLevel.TRACE:
case LogLevel.DEBUG:
case LogLevel.INFO:
fn = console.log;
break;

case LogLevel.WARNING:
fn = console.warn;
break;

case LogLevel.ERROR:
fn = console.error;
break;
}

fn(`[${level}]`, `[${path}]`, ...messages);
};

const logImplTauri = (() => {
const cachedCalls: [string, any][] = [];
let invoke = async (cmd: string, args: any): Promise<any> => {
// defer actual logging until module finished loading
cachedCalls.push([cmd, args]);
};
import('@tauri-apps/api/tauri').then((tauri) => {
invoke = tauri.invoke;
cachedCalls.forEach(([cmd, args]) => {
invoke(cmd, args);
});
});

return (level: LogLevel, path: string, ...messages: any[]) => {
logImplWeb(level, path, ...messages);
invoke('plugin:cabr2_logger|log', {
level,
path,
messages,
}).catch((err) => {
console.error(err);
});
};
})();

const log = (() => {
if (environment.web) {
return logImplWeb;
} else {
return logImplTauri;
}
})();

/**
* This class provides methods that call the logging functions in the backend.
* It is supposed to be used if you want to log something into the log file,
Expand Down
14 changes: 14 additions & 0 deletions frontend/src/app/@core/utils/logger/logger-impl.ts
@@ -0,0 +1,14 @@
import { invoke } from '@tauri-apps/api/tauri';
import { LogLevel } from '../logger';
import logWeb from './web.logger-impl';

export default (level: LogLevel, path: string, ...messages: any[]): void => {
logWeb(level, path, ...messages);
invoke('plugin:cabr2_logger|log', {
level,
path,
messages,
}).catch((err) => {
console.error(err);
});
};
22 changes: 22 additions & 0 deletions frontend/src/app/@core/utils/logger/web.logger-impl.ts
@@ -0,0 +1,22 @@
import { LogLevel } from '../logger';

export default (level: LogLevel, path: string, ...messages: any[]): void => {
let fn;
switch (level) {
case LogLevel.TRACE:
case LogLevel.DEBUG:
case LogLevel.INFO:
fn = console.log;
break;

case LogLevel.WARNING:
fn = console.warn;
break;

case LogLevel.ERROR:
fn = console.error;
break;
}

fn(`[${level}]`, `[${path}]`, ...messages);
};

0 comments on commit a02b2ba

Please sign in to comment.