Receitas

Exemplos de integração.

Adapte os nomes e a metadata ao domínio do seu resource. Registre somente eventos que tenham valor operacional.

Compra na economia

Registre o resultado confirmado, não apenas a tentativa enviada pelo jogador.

lua · server
RegisterNetEvent('shop:purchase', function(itemName, amount)
    local playerSource = source

    -- Valide item, saldo e permissão no servidor antes do log.
    local purchase = completePurchase(playerSource, itemName, amount)
    if not purchase then return end

    exports.traki:log({
        event = 'economy.purchase',
        author = playerSource,
        message = 'Compra concluída',
        metadata = {
            item = itemName,
            amount = amount,
            total = purchase.total
        }
    })
end)

Transferência entre jogadores

Use `author` para quem iniciou e `target` para quem recebeu. Isso permite filtrar o histórico de ambos sem duplicar identificadores na metadata.

lua · server
local result = exports.traki:log({
    event = 'inventory.item_transferred',
    severity = 'info',
    message = 'Item transferido entre jogadores',
    author = source,
    target = targetSource,
    metadata = {
        item = itemName,
        quantity = quantity
    }
})

Ação administrativa

Eventos de moderação normalmente merecem severidade `warning`, `error` ou `critical`, de acordo com o impacto.

lua · server
exports.traki:log({
    event = 'admin.player_banned',
    severity = 'warning',
    message = 'Jogador banido pela administração',
    author = adminSource,
    target = playerSource,
    metadata = {
        reason = reason,
        durationSeconds = durationSeconds,
        caseId = caseId
    }
})

Evento sem jogador

Omita `author` e `target` para atividades originadas pelo resource ou pelo servidor.

lua · server
exports.traki:log({
    event = 'server.maintenance_started',
    severity = 'info',
    message = 'Manutenção programada iniciada',
    metadata = {
        maintenanceId = maintenanceId,
        expectedMinutes = 15
    }
})

Escolhendo a severidade

NívelUso recomendado
debugDiagnóstico temporário e de baixo valor operacional.
infoOperações normais concluídas.
warningAções sensíveis ou situações que merecem revisão.
errorFalha importante em uma operação.
criticalIncidente que exige atenção imediata.