log-target-db

Yii Logging Library - DB Target

BSD-3-CLAUSE License

Downloads
156
Stars
13
Committers
13

This package provides the Database target for the yiisoft/log library.

Supported databases

Packages PHP Versions CI-Actions
[db-mssql] 8.0 - 8.2 2017 - 2022 mssql
[db-mysql/mariadb] 8.0 - 8.2 5.7-8.0/10.4-10.10 mysql
[db-oracle] 8.0 - 8.2 11C - 21C oracle
[db-pgsql] 8.0 - 8.2 9.0 - 15.0 pgsql
[db-sqlite] 8.0 - 8.2 3:latest sqlite

Requirements

  • PHP 8.0 or higher.
  • PDO PHP extension.

Installation

The package could be installed with Composer:

composer require yiisoft/log-target-db

Create database connection

For more information see yiisoft/db.

Database Preparing

Package provides two way for preparing database:

  1. Raw SQL. You can use it with the migration package used in your application.

  2. DbSchemaManager for ensureTable(), ensureNoTable() methods for log table (by default {{%yii_log}}).

// Create db schema manager
$dbSchemaManager = new DbSchemaManager($db);

// Ensure table with default name
$dbSchemaManager->ensureTable();

// Ensure table with custom name
$dbSchemaManager->ensureTable('{{%custom_log_table}}');

// Ensure no table with default name
$dbSchemaManager->ensureNoTable();

// Ensure no table with custom name
$dbSchemaManager->ensureNoTable('{{%custom_log_table}}');

General usage

When creating an instance of \Yiisoft\Log\Logger, you must pass an instance of the database connection.

Creating a target:

$dbTarget = new \Yiisoft\Log\Target\Db\DbTarget($db, $table);
  • $db (\Yiisoft\Db\Connection\ConnectionInterface) - The database connection instance.
  • $table (string) - The name of the database table to store the log messages. Defaults to "log".

Creating a logger:

$logger = new \Yiisoft\Log\Logger([$dbTarget]);

You can use multiple databases to store log messages:

/**
 * @var \Yiisoft\Db\Connection\ConnectionInterface $mysqlDb
 * @var \Yiisoft\Db\Connection\ConnectionInterface $sqliteDb
 */

$logger = new \Yiisoft\Log\Logger([
    new \Yiisoft\Log\Target\Db\DbTarget($mysqlDb),
    new \Yiisoft\Log\Target\Db\DbTarget($sqliteDb),
]);

Documentation

For a description of using the logger, see the yiisoft/log package.

If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.

License

The Yii Logging Library - DB Target is free software. It is released under the terms of the BSD License. Please see LICENSE for more information.

Maintained by Yii Software.

Support the project

Follow updates