yiisoft / log-target-db
Yii Logging Library - DB Target
Fund package maintenance!
Opencollective
yiisoft
Installs: 157
Dependents: 0
Suggesters: 1
Security: 0
Stars: 13
Watchers: 17
Forks: 4
Open Issues: 1
Requires
- php: ^8.0
- ext-pdo: *
- psr/log: ^3.0
- yiisoft/db: ^1.0
- yiisoft/log: ^2.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.2
- phpunit/phpunit: ^9.6|^10.1
- rector/rector: ^0.15.1
- roave/infection-static-analysis-plugin: ^1.25|^1.29
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.8|^5.8
- yiisoft/cache: ^3.0
This package is auto-updated.
Last update: 2024-12-12 19:42:51 UTC
README
Yii Logging Library - DB Target
This package provides the Database target for the yiisoft/log library.
Supported databases
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:
-
Raw SQL. You can use it with the migration package used in your application.
-
Ensure tables:
-
Ensure no tables:
-
-
DbSchemaManager
forensureTable()
,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.