# IAgoraService 类 (/zh-CN/api-reference/local-server-recording/cpp/iagoraservice.cpp)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="createagoraservice"></a>
## createAgoraService [#createagoraservice]

```cpp
AGORA_API agora::base::IAgoraService* AGORA_CALL createAgoraService();
```

创建一个 [`IAgoraService`](/zh-CN/api-reference/local-server-recording/cpp/iagoraservice.cpp) 对象并返回指针。

#### 返回值 [#返回值]

- 方法调用成功，返回 [`IAgoraService`](/zh-CN/api-reference/local-server-recording/cpp/iagoraservice.cpp) 对象指针。
- 方法调用失败，返回空指针。

<a id="initialize"></a>
## initialize [#initialize]

```cpp
virtual int initialize(const AgoraServiceConfiguration& config) = 0;
```

初始化 [`IAgoraService`](/zh-CN/api-reference/local-server-recording/cpp/iagoraservice.cpp) 对象。

#### 参数 [#参数]

| 参数 | 数据类型 | 描述 |
| --- | --- | --- |
| `config` | `const AgoraServiceConfiguration&` | 初始化配置。详见 [`AgoraServiceConfiguration`](/zh-CN/api-reference/local-server-recording/cpp/struct#agoraserviceconfiguration)。 |

#### 返回值 [#返回值-1]

- 0：方法调用成功。
- < 0：方法调用失败。

<a id="release"></a>
## release [#release]

```cpp
virtual int release() = 0;
```

释放 [`IAgoraService`](/zh-CN/api-reference/local-server-recording/cpp/iagoraservice.cpp) 对象。

#### 返回值 [#返回值-2]

- 0：方法调用成功。
- < 0：方法调用失败。

<a id="setlogfile"></a>
## setLogFile [#setlogfile]

```cpp
virtual int setLogFile(const char* filePath, unsigned int fileSize, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
```

设置 SDK 日志文件的路径和大小。

SDK 运行期间会将所有日志数据记录在两个日志文件中，每个文件的默认大小为 512 KB。如果将 `fileSize` 设置为 1024 KB，日志文件的总大小为 2 MB。当日志文件总大小超过设置值时，新日志将覆盖旧日志。

:::warning[注意]
为确保日志输出完整，请在调用 [`initialize`](/zh-CN/api-reference/local-server-recording/cpp/iagoraservice.cpp#initialize) 后立即调用此方法。
:::

#### 参数 [#参数-1]

| 参数 | 数据类型 | 描述 |
| --- | --- | --- |
| `filePath` | `const char*` | 日志文件路径指针。请确保该路径所在目录存在且可写。 |
| `fileSize` | `unsigned int` | 每个日志文件的大小（字节）。 |

#### 返回值 [#返回值-3]

- 0：方法调用成功。
- < 0：方法调用失败。

<a id="setlogfilter"></a>
## setLogFilter [#setlogfilter]

```cpp
virtual int setLogFilter(unsigned int filters, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
```

设置 SDK 日志输出过滤器。

日志级别的顺序为 `OFF`、`CRITICAL`、`ERROR`、`WARNING`、`INFO` 和 `DEBUG`。

你可以选择一个日志级别，SDK 会输出该级别及以上级别的日志。例如，如果将日志级别设置为 `WARNING`，则会输出 `CRITICAL`、`ERROR` 和 `WARNING` 级别的日志。

#### 参数 [#参数-2]

| 参数 | 数据类型 | 描述 |
| --- | --- | --- |
| `filters` | `unsigned int` | [iagoraservice-cpp-html-2-1-2 details](#table-slot-iagoraservice-cpp-html-2-1-2) |

<a id="table-slot-iagoraservice-cpp-html-2-1-2"></a>

**iagoraservice-cpp-html-2-1-2 details**

日志输出过滤器。

- `LOG_LEVEL_NONE (0x0000)`：不输出任何日志文件。
- `LOG_LEVEL_INFO (0x0001)`：（推荐）输出 `INFO` 级别的日志文件。
- `LOG_LEVEL_WARN (0x0002)`：输出 `WARN` 级别的日志文件。
- `LOG_LEVEL_ERROR (0x0004)`：输出 `ERROR` 级别的日志文件。
- `LOG_LEVEL_FATAL (0x0008)`：输出 `FATAL` 级别的日志文件。

#### 返回值 [#返回值-4]

- 0：方法调用成功。
- < 0：方法调用失败。

<a id="getagoraparameter"></a>
## getAgoraParameter [#getagoraparameter]

```cpp
virtual agora_refptr<base::IAgoraParameter> getAgoraParameter() = 0;
```

获取 `IAgoraParameter` 对象。

#### 返回值 [#返回值-5]

- 方法调用成功，返回 `IAgoraParameter` 对象。
- 方法调用失败，返回空指针。
