常用的基础组件:
- 基于 psr、Monolog包 封装的日志包
- 配置composer.json
{
"require-dev": {
"shershon/base": "^1.0.0"
},
"config": {
"secure-http": false
},
"repositories": [
{
"type": "git",
"url": "https://github.com/shershon-php-package/base-component.git"
}
]
}- composer require --ignore-platform-reqs shershon/base
- rm -rf vendor/shershon/base/.git
- composer require --ignore-platform-reqs shershon/base:1.0.0(替换成指定的版本)
- rm -rf vendor/shershon/base/.git
-
前期准备,设置常量。在框架入口或脚本入口添加请求id和开始时间
define('INDEX_START', microtime(true));//基于计算耗时 define('REQUEST_ID', 'PHP_' . uniqid(gethostname() . '_'));//用于追踪请求链路 -
打印日志 $logger的的instance只需要初始化一次,一般放在ServiceProvider中初始化一次,后期只使用LogFacade门面类打印日志
$config = [
'file' => '/logs/test.log' //设置日志路径
];
$logger = new Logger();
$logger->setConfig($config);
LogFacade::setInstance($logger);
//日志不区分模块
LogFacade::info('test', ['title' => 'this is test'])
//日志区分模块,便于搜索
LogFacade::info('module:message', ['title' => 'this is test'])- 在public/index.php和artisan文件中增加常量
define('INDEX_START', microtime(true));//基于计算耗时
define('REQUEST_ID', 'PHP_' . uniqid(gethostname() . '_'));//用于追踪请求链路
- 在AppServiceProvider的boot方法初始化日志服务, .env配置日志文件路径
<?php
namespace App\Providers;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;
use Shershon\Base\Logger\LogFacade;
use Shershon\Base\Logger\LogFacadeFacade;
use Shershon\Base\Logger\LogFacadeger;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
//
}
public function boot()
{
//配置日志服务
$config = [
'file' => env('LOG_FILE', '/tmp/test.log'), //设置日志路径
'level' => env('LOG_LEVEL', 'DEBUG'),
];
if (class_exists("Shershon\Base\Logger\LogFacade")) {
$logger = new Logger();
$logger->setConfig($config);
LogFacade::setInstance($logger);
}
}
}- 在需要打日志的地方使用 LogFacade日志门面类打印日志即可
LogFacade::info('module:message', ['title' => 'this is test'])
- 在public/index.php(每个不同的应用入口)和think文件中增加常量
define('INDEX_START', microtime(true));//基于计算耗时
define('REQUEST_ID', 'PHP_' . uniqid(gethostname() . '_'));//用于追踪请求链路
- 在AppService的boot方法初始化日志服务,.env配置配置日志文件路径
class AppService extends Service
{
public function register()
{
// 服务注册
}
public function boot()
{
// 服务启动
//配置日志服务
$config = [
'file' => env('log.path', '/logs').'/test.log' //设置日志路径
];
if (class_exists("Shershon\Base\Logger\LogFacade")) {
$logger = new Logger();
$logger->setConfig($config);
LogFacade::setInstance($logger);
}
}
}- 在需要打日志的地方使用 LogFacade日志门面类打印日志即可
LogFacade::info('module:message', ['title' => 'this is test'])