統一日誌管理

猫猫客服發表於2024-07-08

當做負載均衡時,查詢日誌在多臺伺服器上比較麻煩

在 ThinkPHP 5.1 中使用阿里雲 OSS SDK 作為日誌驅動來統一記錄日誌,需要完成以下步驟:
安裝阿里雲 OSS SDK
使用 Composer 安裝阿里雲 OSS SDK:

composer require aliyun/oss-sdk-php

return [
// ...
'aliyun_oss' => [
'AccessKeyId' => env('aliyun.oss.access_key_id'),
'AccessKeySecret' => env('aliyun.oss.access_key_secret'),
'Bucket' => env('aliyun.oss.bucket'),
'Endpoint' => env('aliyun.oss.endpoint'),
'OSSAPIVersion' => '2013-10-15',
'Timeout' => 30,
'ConnectTimeout' => 10,
'ProxyHost' => '',
'ProxyPort' => '',
'ProxyTimeout' => 30,
'ProxyUsername' => '',
'ProxyPassword' => '',
'CacertPath' => '',
'SignatureNonce' => true,
],
];

namespace extend\driver;

use think\Log\Driver\File as FileDriver;
use OSS\OssClient;

class Oss extends FileDriver
{
protected $oss;

public function initialize()
{
parent::initialize();
$this->oss = new OssClient(
config('aliyun_oss.AccessKeyId'),
config('aliyun_oss.AccessKeySecret'),
config('aliyun_oss.Endpoint')
);
}

public function write($message, $level)
{
$logName = $this->getFileName($level);
$this->oss->putObject(config('aliyun_oss.Bucket'), $logName, $message);
}
}

return [
// ...
'type' => 'Oss', // 更改為你的自定義驅動名稱
// ...
];

return [
// ...
'type' => 'Oss', // 更改為你的自定義驅動名稱
// ...
];

以上是AI寫的,可供參考。

相關文章