PHP code example of itxiao6 / aliyun-sls

1. Go to this page and download the library: Download itxiao6/aliyun-sls library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

itxiao6 / aliyun-sls example snippets




return [
    'endpoint' => env('ALIYUN_SLS_ENDPOINT', 'cn-beijing.log.aliyuncs.com'),
    'access_key_id' => env('ALIYUN_SLS_ACCESS_KEY_ID', ''),
    'access_key_secret' => env('ALIYUN_SLS_ACCESS_KEY_SECRET', ''),
];



declare(strict_types=1);

namespace App\Service;

use Heartide\AliYun\Sls\Request\GetLogsRequest;
use Heartide\AliYun\Sls\Request\PutLogsRequest;
use Hyperf\HttpServer\Request;
use Heartide\AliYun\Sls\ClientInterface;
use Hyperf\Di\Annotation\Inject;

class LoggerService
{
    /**
     * @Inject()
     * @var ClientInterface
     */
    protected $sls;

    public function getLogs(Request $request)
    {
        $getLogsRequest = make(GetLogsRequest::class);
        $getLogsRequest->setProject($request->input('project'));
        $getLogsRequest->setLogstore($request->input('logStore'));
        $getLogsRequest->setFrom($request->input('from'));
        $getLogsRequest->setTo($request->input('to'));
        $getLogsRequest->setTopic($request->input('topic'));
        $getLogsRequest->setQuery($request->input('query'));
        $getLogsRequest->setLine($request->input('line'));
        $getLogsRequest->setOffset($request->input('offset'));
        $getLogsRequest->setReverse($request->input('reverse'));

        return $this->sls->getLogs($getLogsRequest);
    }

    public function putLogs(Request $request)
    {
        $content = collect($request->input('content'))
            ->map(function ($item) {
                return make(LogItem::class, [time(), $item]);
            });

        $putLogsRequest = make(PutLogsRequest::class);
        $putLogsRequest->setProject($request->input('project'));
        $putLogsRequest->setLogstore($request->input('logStore'));
        $putLogsRequest->setTopic($request->input('topic'));
        $putLogsRequest->setShardKey($request->input('shardKey'));
        $putLogsRequest->setLogItems($content->toArray());

        $putLogsResponse = $this->sls->putLogs($putLogsRequest);

        return $putLogsResponse->getRequestId();
    }
}

use Hyperf\Di\Annotation\Inject;
use Heartide\AliYun\Sls\ClientInterface;

/**
 * @Inject()
 * @var ClientInterface
 */
protected $sls;