Skip to content
This repository was archived by the owner on Apr 29, 2025. It is now read-only.

Commit 9920ae7

Browse files
committed
refactor(logger): dynamically load logger service
1 parent f005a2f commit 9920ae7

File tree

4 files changed

+31
-27
lines changed

4 files changed

+31
-27
lines changed

build.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,7 @@ dependencies {
3737
}
3838
3939
client_script 'ui.lua'
40-
server_scripts {
41-
'dist/build.js',
42-
'logger/fivemanage.js'
43-
}
40+
server_scripts 'dist/build.js'
4441
4542
files {
4643
'web/build/index.html',

logger/fivemanage.js

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
// https://fivemanage.com/?ref=overextended
22

33
const apiKey = GetConvar('FIVEMANAGE_LOGS_API_KEY', '');
4-
const endpoint = 'https://api.fivemanage.com/api/logs/batch';
54

5+
if (!apiKey) return console.warning(`convar "FIVEMANAGE_LOGS_API_KEY" has not been set`);
6+
7+
const batchedLogs = [];
8+
const endpoint = 'https://api.fivemanage.com/api/logs/batch';
69
const headers = {
710
['Content-Type']: 'application/json',
811
['Authorization']: apiKey,
912
['User-Agent']: 'oxmysql',
1013
};
1114

12-
const batchedLogs = [];
13-
1415
async function sendLogs() {
1516
try {
1617
const body = JSON.stringify(batchedLogs);
@@ -30,23 +31,8 @@ async function sendLogs() {
3031
}
3132
}
3233

33-
async function logger(level, resource, message, metadata) {
34-
if (!apiKey) return;
35-
34+
return function logger(data) {
3635
if (batchedLogs.length === 0) setTimeout(sendLogs, 500);
3736

38-
batchedLogs.push({
39-
level: level,
40-
message: message,
41-
resource: resource,
42-
metadata: metadata,
43-
});
44-
}
45-
46-
function errorEvent(data) {
47-
delete data.err.sqlMessage;
48-
logger('error', data.resource, `${data.resource} was unable to execute a query!`, data.err);
49-
}
50-
51-
on('oxmysql:error', errorEvent);
52-
on('oxmysql:transaction-error', errorEvent);
37+
batchedLogs.push(data);
38+
};

src/database/rawTransaction.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { getConnection } from './connection';
2-
import { logError, logQuery } from '../logger';
2+
import { logError, logger, logQuery } from '../logger';
33
import { CFXCallback, CFXParameters, TransactionQuery } from '../types';
44
import { parseTransaction } from '../utils/parseTransaction';
55
import { setCallback } from '../utils/setCallback';
@@ -69,6 +69,15 @@ export const rawTransaction = async (
6969
err: err,
7070
resource: invokingResource,
7171
});
72+
73+
if (typeof err === 'object' && err.message) delete err.sqlMessage;
74+
75+
logger({
76+
level: 'error',
77+
resource: invokingResource,
78+
message: msg,
79+
metadata: err,
80+
});
7281
}
7382

7483
if (cb)

src/logger/index.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@ import { mysql_debug, mysql_log_size, mysql_slow_query_warning, mysql_ui } from
22
import type { CFXCallback, CFXParameters } from '../types';
33
import { dbVersion } from '../database';
44

5+
const loggerService = GetConvar('mysql_logger_service', '');
6+
export const logger = new Function(LoadResourceFile('oxmysql', `logger/${loggerService}.js`))() || (() => {});
7+
58
export function logError(
69
invokingResource: string,
710
cb: CFXCallback | undefined,
811
isPromise: boolean | undefined,
9-
err: Error | string = '',
12+
err: any | string = '', // i cbf typing the error right now
1013
query?: string,
1114
parameters?: CFXParameters,
1215
includeParameters?: boolean
@@ -25,6 +28,15 @@ export function logError(
2528
resource: invokingResource,
2629
});
2730

31+
if (typeof err === 'object' && err.message) delete err.sqlMessage;
32+
33+
logger({
34+
level: 'error',
35+
resource: invokingResource,
36+
message: message,
37+
metadata: err,
38+
});
39+
2840
if (cb && isPromise) return cb(null, output);
2941

3042
console.error(output);

0 commit comments

Comments
 (0)