🚀 Auto-deploy: melhoria no snap e medição AR em 22/05/2026 21:38:44
This commit is contained in:
+44
-15
@@ -1,26 +1,55 @@
|
||||
import { supabase } from '@/integrations/supabase/client';
|
||||
|
||||
const logBuffer: any[] = [];
|
||||
let channelSubscribed = false;
|
||||
|
||||
const logChannel = supabase.channel('global-app-logs', {
|
||||
config: { broadcast: { self: true, ack: false } },
|
||||
});
|
||||
|
||||
logChannel.subscribe();
|
||||
logChannel.subscribe((status) => {
|
||||
console.log(`[RemoteLogger] Status do canal de log: ${status}`);
|
||||
if (status === 'SUBSCRIBED') {
|
||||
channelSubscribed = true;
|
||||
console.log(`[RemoteLogger] Inscrito com sucesso. Enviando ${logBuffer.length} logs acumulados...`);
|
||||
// Envia o buffer acumulado
|
||||
while (logBuffer.length > 0) {
|
||||
const payload = logBuffer.shift();
|
||||
logChannel.send({
|
||||
type: 'broadcast',
|
||||
event: 'log',
|
||||
payload,
|
||||
}).catch(err => {
|
||||
console.error('[RemoteLogger] Erro ao enviar log em buffer:', err);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
export function sendRemoteLog(level: 'info' | 'warn' | 'error', message: string, data?: any) {
|
||||
console.log(`[RemoteLog] [${level}] ${message}`, data || '');
|
||||
logChannel.send({
|
||||
type: 'broadcast',
|
||||
event: 'log',
|
||||
payload: {
|
||||
level,
|
||||
message,
|
||||
data: data ? JSON.parse(JSON.stringify(data)) : null,
|
||||
timestamp: new Date().toISOString(),
|
||||
userAgent: navigator.userAgent,
|
||||
},
|
||||
}).catch(err => {
|
||||
console.error('Falha ao enviar log remoto:', err);
|
||||
});
|
||||
const consoleFn = level === 'error' ? console.error : level === 'warn' ? console.warn : console.log;
|
||||
consoleFn(`[RemoteLog] [${level}] ${message}`, data || '');
|
||||
|
||||
const payload = {
|
||||
level,
|
||||
message,
|
||||
data: data ? JSON.parse(JSON.stringify(data)) : null,
|
||||
timestamp: new Date().toISOString(),
|
||||
userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : 'NodeJS',
|
||||
};
|
||||
|
||||
if (channelSubscribed) {
|
||||
logChannel.send({
|
||||
type: 'broadcast',
|
||||
event: 'log',
|
||||
payload,
|
||||
}).catch(err => {
|
||||
console.error('[RemoteLogger] Falha ao enviar log remoto, enfileirando...', err);
|
||||
logBuffer.push(payload);
|
||||
});
|
||||
} else {
|
||||
logBuffer.push(payload);
|
||||
}
|
||||
}
|
||||
|
||||
// Captura global de erros em tempo de execução
|
||||
|
||||
Reference in New Issue
Block a user