config/app.php
'debug' => env('APP_DEBUG', true),
日志记录有四种 定义好的格式 : "single", "daily", "syslog", "errorlog"
'log' => 'daily',//日志按日期记录
'log' => 'single',
'log' => 'syslog',
'log' => 'errorlog',
除了以上四个还以自定义:
bootstrap/app.php return $app;前面添加这个
/*自定义monolog 日志记录:*/
$app->configureMonologUsing(function(Monolog\Logger $monolog) {
$filename = storage_path('/logs/project-' . php_sapi_name() . '.log');//ERROR DEBUG
$handler = new Monolog\Handler\RotatingFileHandler($filename, 0, \Monolog\Logger::ERROR, true, 0664);
$monolog->pushHandler($handler);
});
待续....
写入数据库,发送邮件...
发现一个超好实在的
借用里面的写入数据库
因为自己之前看文档的时候也是懵懵,后面发现handler方法可以自己拓展,然后实例接口AbstractProcessingHandler就行了
https://juejin.im/entry/574f072d49830c00584680de
PDOHandler
调用的时候如果是在bootstrap调用的时候
$mysql = array(
'driver' => 'mysql',
'host' => env('DB_HOST') ?: '',
'database' => env('DB_DATABASE') ?: '',
'username' => env('DB_USERNAME') ?: '',
'password' => env('DB_PASSWORD') ?: '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
);
$ds="mysql:dbname=".$mysql['database'].";host=".$mysql['host'];
$pdo = new PDO($ds, $mysql['username'], $mysql['password']);
$handlerdb = new Monolog\Handler\PDOHandler($pdo,\Monolog\Logger::ERROR,true);
$monolog->pushHandler($handlerdb);
上面直接用的代码会一直报 Monolog\Handler\PDOHandler::_construct() must be an instance of Monolog\Handler\PDO
在里面增加
namespace Monolog\Handler;
use PDO;//增加这个即可
use Monolog\Logger;
use Monolog\Handler\AbstractProcessingHandler;
取值的时候发现的一个bug
当环境切换为生成环境的时候,env取到的数据都为Null
要用config()方法去取数据。
$mysql = array(
'host' => config('database.connections.mysql.host'),
'database' => config('database.connections.mysql.database'),
'username' => config('database.connections.mysql.username'),
'password' => config('database.connections.mysql.password'),
);