PHPackages                             meusistemabr/ci4-sqlite-logger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. meusistemabr/ci4-sqlite-logger

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

meusistemabr/ci4-sqlite-logger
==============================

Logger SQLite rotativo e auditoria forense estruturada para aplicações CodeIgniter 4. Garanta integridade total dos seus logs com nosso sistema de rotação inteligente, mantendo um histórico completo e seguro para auditorias forenses. Ideal para aplicações que exigem conformidade rigorosa e rastreabilidade detalhada.

v1.3.0(1mo ago)066MITPHPPHP &gt;=8.1

Since May 9Pushed 1mo agoCompare

[ Source](https://github.com/meusistemabr/ci4-sqlite-logger)[ Packagist](https://packagist.org/packages/meusistemabr/ci4-sqlite-logger)[ RSS](/packages/meusistemabr-ci4-sqlite-logger/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (8)Dependencies (2)Versions (10)Used By (0)

CI4 SQLite Logger 🛡️
====================

[](#ci4-sqlite-logger-️)

O CI4 SQLite Logger é uma biblioteca de logging de alta integridade para CodeIgniter 4. Diferente dos logs tradicionais em texto, ele armazena eventos em um banco de dados SQLite rotativo, utilizando uma Corrente de Custódia (Hash Chain) para garantir que os registros não sejam alterados ou deletados sem detecção.

✨ Recursos Principais
---------------------

[](#-recursos-principais)

- **Banco de Dados Rotativo:** Monitoramento automático do tamanho do arquivo com rotação inteligente.
- **Corrente de Custódia:** Cada log contém um hash SHA-256 que o vincula matematicamente ao log anterior.
- **Modo Performance (WAL):** Utiliza Write-Ahead Logging para permitir escritas rápidas sem travar a aplicação.
- **Dados Forenses:** Captura automática de IP (IPv4/IPv6), UUID, Device Info e porta remota.
- **Metadados de Segurança:** Identificação única do banco de dados para evitar substituição de arquivos.

A biblioteca pode trabalhar de duas formas:

1. Como handler do `log_message()` do CodeIgniter 4.
2. Como API direta por helpers globais: `msbr_log()` e `msbr_audit()`.

A forma direta é recomendada para auditoria de negócio, porque o terceiro parâmetro do `log_message()` é usado pelo Logger/PSR-3 para interpolação de placeholders e pode não chegar intacto ao handler.

🚀 Instalação
------------

[](#-instalação)

Instale a lib via Composer:

```
  composer require meusistemabr/ci4-sqlite-logger
```

Depois de atualizar a lib localmente, rode:

```
composer dump-autoload
php spark optimize:clear
```

⚙️ Configuração opcional do Logger.php
--------------------------------------

[](#️-configuração-opcional-do-loggerphp)

Arquivo: `app/Config/Logger.php`

Abra o arquivo `app/Config/Logger.php` instancie a biblioteca do SQLite Logger no início do arquivo, logo após as instâncias padrão do Codeigniter, adicione `use MeusistemaBR\Ci4SqliteLogger\SqliteHandler;` e, adicione o handler no array `$handlers` no mesmo arquivo, veja um exemplo:

```
  ...
  ...
  ...
  ...
  ... // bastante codigo acima e algumas instruções
  SqliteHandler::class => [
        'handles' => [
            'critical',
            'alert',
            'emergency',
            'debug',
            'error',
            'info',
            'notice',
            'warning',
        ],
        'dbPath'       => WRITEPATH . 'database/system_logs.db',
        'maxFileSize'  => 10 * 1024 * 1024,
        'reportErrors' => true,
        'throwOnError' => false,
        'type'         => 'system',
    ],
```

Os parâmetros são opcionais, uma vez já definido quais os `$handlers` na classe `SqliteHandler::class` a biblioteca já funciona com seus valores padrões.

Uso recomendado: log técnico direto
-----------------------------------

[](#uso-recomendado-log-técnico-direto)

```
msbr_log('warning', 'Falha ao processar pagamento', [
    'order_id'     => 123,
    'gateway'      => 'pagarme',
    'cluster_id'   => 3,
    'port_origin'  => '1234'
]);
```

Os dados são gravados na tabela `system_logs`.

Uso recomendado: auditoria de negócio
-------------------------------------

[](#uso-recomendado-auditoria-de-negócio)

```
msbr_audit(
    'update',
    'Cadastro de Clientes',
    'Cliente alterado',
    [
        'user_id'   => auth()->user()->id ?? null,
        'table'     => 'clientes',
        'record_id' => $clienteId,
        'old'       => $oldData,
        'new'       => $newData,
    ]
);
```

Os dados são gravados na tabela `audit_logs`.

### Assinatura:

[](#assinatura)

```
msbr_audit(
    string $action,
    string $area,
    string $message,
    array $data = [],
    string $level = 'warning',
    array $config = []
): bool
```

Tabelas criadas automaticamente
-------------------------------

[](#tabelas-criadas-automaticamente)

A biblioteca cria automaticamente:

- `system_logs`
- `audit_logs`
- `lib_metadata`

Caminho padrão:

```
WRITEPATH . 'database/system_logs.db'
```

Normalmente equivale a:

```
writable/database/system_logs.db

```

Por padrão, o tamanho máximo por cada bloco de Banco de Dados é de 10MB, você pode definir valores maiores ou menores. O sistema fará a rotatividade de forma automática quando atingir o limite.

🔍 Funções Forenses e Segurança
------------------------------

[](#-funções-forenses-e-segurança)

Pensamos nesta lib para logs no Codeigniter 4 principalmente não só para registrar e rastrear os registros de erros e ingestões de sua aplicação, mas também para oferecer garantia de, caso necessário, caso seu Software com nossa lib instalada passe por alguma perícia forense digita; ou análise de consistência, você poderá oferecer conformidade e confiabilidade.

### 1. Integridade de Dados (Hash Chain)

[](#1-integridade-de-dados-hash-chain)

Cada linha inserida gera um hash baseado em: `Hash Anterior + UUID + Nível + Mensagem + IP + Contexto`.Se um hacker apagar o log de um ataque, a corrente será quebrada, invalidando o banco.

A biblioteca mantém hash chain para `system_logs` e `audit_logs`.

```
$handler = msbr_sqlite_logger();

$okSystem = $handler?->verifyIntegrity('system_logs');
$okAudit  = $handler?->verifyIntegrity('audit_logs');
```

### 2. Rastreabilidade Total

[](#2-rastreabilidade-total)

Diferente do log padrão, salvamos:

- **UUID:** Identificador único para rastrear uma falha específica.
- **Contexto JSON:** Dados estruturados para auditoria.
- **Fingerprint:** Informações do navegador e sistema operacional do originador.

### 3. Consulta dos Logs pelo Spark

[](#3-consulta-dos-logs-pelo-spark)

Exiba os 10 registros mais recentes do banco SQLite em uso:

```
php spark logs:tail
```

Informe uma quantidade entre 1 e 1000 para alterar o limite:

```
php spark logs:tail 25
```

### 4. Seguro contra crash e erro 500

[](#4-seguro-contra-crash-e-erro-500)

As helpers `msbr_log()` e `msbr_audit()` são protegidas com `Throwable` e retornam `false` em caso de falha. Por padrão, a lib não derruba a aplicação.

Para debug local:

```
'throwOnError' => true,
```

Para produção:

```
'throwOnError' => false,
```

Apoiado e mantido por
---------------------

[](#apoiado-e-mantido-por)

[![MeuSistema sistemas online personalizados](https://camo.githubusercontent.com/4b3d5471cc73052a142b3ff1d743b5c35340f238f1f59ab0bc0ea703ea37e8b2/68747470733a2f2f63646e2d61312d62722d736c2e6d657573697374656d612e636f6d2e62722f696d6167656e732f6c6f676f5f6d732e706e67)](https://camo.githubusercontent.com/4b3d5471cc73052a142b3ff1d743b5c35340f238f1f59ab0bc0ea703ea37e8b2/68747470733a2f2f63646e2d61312d62722d736c2e6d657573697374656d612e636f6d2e62722f696d6167656e732f6c6f676f5f6d732e706e67)

**Meu Sistema - Sistemas online personalizados**
Acesse: [https://meusistema.com.br](https://meusistema.com.br "Sistemas online personalizados")
Fale consoco em: contato\[at\]meusistema.com.br

Licença
-------

[](#licença)

[MIT](https://choosealicense.com/licenses/mit/)

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance91

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

9

Last Release

44d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/93db6b03504d08e383e4b74262654393e7b00c95b9e98f769da44d42f1c15e3b?d=identicon)[meusistemabr](/maintainers/meusistemabr)

---

Top Contributors

[![meusistemabr](https://avatars.githubusercontent.com/u/192922711?v=4)](https://github.com/meusistemabr "meusistemabr (9 commits)")

---

Tags

ci4codeigniter4forensicslibrariesloggersphpsecurity-toolssqlite

### Embed Badge

![Health badge](/badges/meusistemabr-ci4-sqlite-logger/health.svg)

```
[![Health](https://phpackages.com/badges/meusistemabr-ci4-sqlite-logger/health.svg)](https://phpackages.com/packages/meusistemabr-ci4-sqlite-logger)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B11.9k](/packages/psr-log)[open-telemetry/api

API for OpenTelemetry PHP.

2041.5M289](/packages/open-telemetry-api)[open-telemetry/sdk

SDK for OpenTelemetry PHP.

2428.5M356](/packages/open-telemetry-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
