add logging with loglevel

This commit is contained in:
Elijah Duffy
2025-12-16 18:21:39 -08:00
parent af1c423ccb
commit 802a825854
5 changed files with 37 additions and 5 deletions

View File

@@ -61,7 +61,8 @@
"svelte" "svelte"
], ],
"dependencies": { "dependencies": {
"@types/umami": "^2.10.1" "@types/umami": "^2.10.1",
"loglevel": "^1.9.2"
}, },
"publishConfig": { "publishConfig": {
"registry": "https://gitea.auvem.com/api/packages/svelte-toolkit/npm/" "registry": "https://gitea.auvem.com/api/packages/svelte-toolkit/npm/"

9
pnpm-lock.yaml generated
View File

@@ -11,6 +11,9 @@ importers:
'@types/umami': '@types/umami':
specifier: ^2.10.1 specifier: ^2.10.1
version: 2.10.1 version: 2.10.1
loglevel:
specifier: ^1.9.2
version: 1.9.2
devDependencies: devDependencies:
'@eslint/compat': '@eslint/compat':
specifier: ^1.4.0 specifier: ^1.4.0
@@ -846,6 +849,10 @@ packages:
lodash.merge@4.6.2: lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
loglevel@1.9.2:
resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==}
engines: {node: '>= 0.6.0'}
magic-string@0.30.21: magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
@@ -1852,6 +1859,8 @@ snapshots:
lodash.merge@4.6.2: {} lodash.merge@4.6.2: {}
loglevel@1.9.2: {}
magic-string@0.30.21: magic-string@0.30.21:
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5

View File

@@ -39,18 +39,21 @@
loadMetaPixel(); // Load the Meta Pixel script loadMetaPixel(); // Load the Meta Pixel script
} }
this._baseLoaded = true; this._baseLoaded = true;
log.debug('Meta Pixel base script loaded.');
} }
/** Tells the Meta pixel that the user has given consent for tracking. */ /** Tells the Meta pixel that the user has given consent for tracking. */
static grantConsent() { static grantConsent() {
this.loadGuard(); this.loadGuard();
window.fbq?.('consent', 'grant'); window.fbq?.('consent', 'grant');
log.debug('Meta Pixel consent granted.');
} }
/** Tells the Meta pixel that the user has revoked consent for tracking. */ /** Tells the Meta pixel that the user has revoked consent for tracking. */
static revokeConsent() { static revokeConsent() {
this.loadGuard(); this.loadGuard();
window.fbq?.('consent', 'revoke'); window.fbq?.('consent', 'revoke');
log.debug('Meta Pixel consent revoked.');
} }
/** /**
@@ -89,6 +92,7 @@
fireInit(advancedMatching?: AdvancedMatching, initOptions?: InitOptions): PixelControl { fireInit(advancedMatching?: AdvancedMatching, initOptions?: InitOptions): PixelControl {
PixelControl.loadGuard(); PixelControl.loadGuard();
window.fbq('init', this._pixelID, advancedMatching, initOptions); window.fbq('init', this._pixelID, advancedMatching, initOptions);
log.debug(`Meta Pixel [${this._pixelID}] initialized.`);
return this; return this;
} }
@@ -111,6 +115,9 @@
pageView() { pageView() {
if (!this.consentGuard()) return; if (!this.consentGuard()) return;
window.fbq('track', 'PageView', undefined, { test_event_code: this._testEventCode }); window.fbq('track', 'PageView', undefined, { test_event_code: this._testEventCode });
log.debug(
`Meta Pixel [${this._pixelID}] PageView event sent (test code: ${this._testEventCode}).`
);
} }
/** /**
@@ -123,6 +130,9 @@
eventID, eventID,
test_event_code: this._testEventCode test_event_code: this._testEventCode
}); });
log.debug(
`Meta Pixel [${this._pixelID}] ${event} event sent (test code: ${this._testEventCode}).`
);
} }
/** /**
@@ -135,6 +145,9 @@
eventID, eventID,
test_event_code: this._testEventCode test_event_code: this._testEventCode
}); });
log.debug(
`Meta Pixel [${this._pixelID}] ${event} custom event sent (test code: ${this._testEventCode}).`
);
} }
} }
</script> </script>
@@ -154,6 +167,7 @@
import { loadMetaPixel } from './util/meta-pixel-loader.ts'; import { loadMetaPixel } from './util/meta-pixel-loader.ts';
import { onNavigate } from '$app/navigation'; import { onNavigate } from '$app/navigation';
import { resolveGetter, type MaybeGetter } from './util/getter.ts'; import { resolveGetter, type MaybeGetter } from './util/getter.ts';
import log from 'loglevel';
interface Props { interface Props {
/** Meta Pixel ID */ /** Meta Pixel ID */

View File

@@ -2,6 +2,7 @@
import { dev } from '$app/environment'; import { dev } from '$app/environment';
import { onMount } from 'svelte'; import { onMount } from 'svelte';
import type { TrackingManager } from './tracking.svelte.ts'; import type { TrackingManager } from './tracking.svelte.ts';
import log from 'loglevel';
interface Props { interface Props {
/** /**
@@ -27,11 +28,11 @@
const devConsoleTag = $derived(`[dev][consent: ${consentGranted ? 'granted' : 'revoked'}]`); const devConsoleTag = $derived(`[dev][consent: ${consentGranted ? 'granted' : 'revoked'}]`);
const devOverride = { const devOverride = {
track: (...args: unknown[]): Promise<string> | undefined => { track: (...args: unknown[]): Promise<string> | undefined => {
console.log(`${devConsoleTag}: Track called with:`, ...args); log.debug(`${devConsoleTag}: Track called with:`, ...args);
return undefined; return undefined;
}, },
identify: (...args: unknown[]): Promise<void> => { identify: (...args: unknown[]): Promise<void> => {
console.log(`${devConsoleTag}: Identify called with:`, ...args); log.debug(`${devConsoleTag}: Identify called with:`, ...args);
return Promise.resolve(); return Promise.resolve();
} }
}; };
@@ -61,7 +62,7 @@
} }
}); });
if (dev) console.log('[dev]: Umami tracking disabled'); if (dev) log.debug('[dev]: Umami tracking disabled');
onMount(() => { onMount(() => {
if (dev) { if (dev) {

View File

@@ -1,7 +1,14 @@
// Reexport your entry components here // Reexport your entry components here
export * as fbq from './types/fbq.js'; import { dev } from '$app/environment';
import log from 'loglevel';
export type * as fbq from './types/fbq.d.ts'; export type * as fbq from './types/fbq.d.ts';
export { default as MetaPixel, PixelControl } from './MetaPixel.svelte'; export { default as MetaPixel, PixelControl } from './MetaPixel.svelte';
export * from './tracking.svelte.ts'; export * from './tracking.svelte.ts';
export { default as Umami } from './Umami.svelte'; export { default as Umami } from './Umami.svelte';
// set log level to debug if we're in dev mode
if (dev) {
log.setLevel('debug');
}