domtomproject / logger-bundle
Symfony日志操作包
1.0
2017-06-20 10:38 UTC
Requires
- php: ^7.1
- symfony/symfony: 3.2.*
Requires (Dev)
- phpunit/phpunit: ^6.2
- symfony/phpunit-bridge: ^3.0
Suggests
- doctrine/mongodb-odm: NoSQL is better for logging
- doctrine/mongodb-odm-bundle: This bundle already have Writer for mongoDB doctrin bundle
This package is not auto-updated.
Last update: 2024-09-24 17:54:31 UTC
README
快速日志和静态存储包
1. 安装
composer require domtomproject/logger-bundle
在AppKernel.php中添加AND
$bundles = [
...
new DomTomProject\LoggerBundle\DomtomLoggerBundle(),
...
];
2. 配置
在这个示例中,我们使用MysqlWriter。在config.yml中
...
doctrine:
dbal:
default_connection: default
connections:
...
log:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: 'database'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
...
orm:
...
entity_managers:
log:
connection: log
mappings:
AppBundle: ~
...
domtom_logger:
writer: "domtom_logger.writer_mysql"
mysql:
manager: log
因此,日志管理器现在是"log"。这允许您使用其他数据库存储日志数据。
3. 使用示例
a) 创建新的日志实体。
use Doctrine\ORM\Mapping as ORM;
use DomTomProject\LoggerBundle\Model\Log;
/**
* @ORM\Entity
*/
class CustomLog extends Log {
/**
* @Column(type="text", nullable=true)
*/
protected $text;
public function __construct() {
parent::__construct();
}
// method for short creating in one line
public static function create(?string $text = null){
$log = new self();
$log->setText($text);
return $log;
}
// setters and getters ...
}
b) 现在在控制器操作中
public function testLogAction(){
$logStack = $this->get('domtom_logger.log_stack');
$logStack->add(CustomLog::create('Log that'));
....
// if something failed you can check all logs in stack as failed. Its done automatically if kernel.exception event is called.
if($somethingBroken){
$logStack->failed();
}
}