Skip to content

清空日志 Skin - LogClearSkins

函数简介

清空全部已注册的全局日志 Skin。清空后所有用户 Skin 位失效;各 logger 的 LogSetTarget 中残留的 Skin 位会被静默忽略,不再触发回调。

接口名称

LogClearSkins

DLL调用

c
int32_t LogClearSkins(int64_t instance);

参数说明

参数名类型说明
instance长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。

示例

注销全部已注册 Skin。流程:注册若干 Skin → 使用 → LogClearSkins

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int skinA = ola.LogRegisterSkin((int64_t)(void*)&OnUiLog, 0);
int skinB = ola.LogRegisterSkin((int64_t)(void*)&OnNetLog, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int ret = ola.LogClearSkins();
if (ret != 1) {
    return;
}
csharp
using System;
using OLAPlug;

var ola = new OLAPlugServer();

// skinA/skinB 来自 LogRegisterSkin
int skinA = 0, skinB = 0;
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int ret = ola.LogClearSkins();
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()

skin_a = ola.LogRegisterSkin(callback_addr_a, 0)
skin_b = ola.LogRegisterSkin(callback_addr_b, 0)
ola.LogSetTarget(0, 1 | skin_a | skin_b)
ola.LogInfo('multi skin')
ret = ola.LogClearSkins()
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();

int skinA = ola.LogRegisterSkin(cbA, 0);
int skinB = ola.LogRegisterSkin(cbB, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int ret = ola.LogClearSkins();
go
import "github.com/ola/olaplug/olaplug"

ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()

skinA := ola.LogRegisterSkin(cbA, 0)
skinB := ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget(0, 1|skinA|skinB)
ola.LogInfo("multi skin")
ret := ola.LogClearSkins()
rust
use olaplug::OLAPlugServer;

let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();

let skin_a = ola.log_register_skin(cb_a, 0);
let skin_b = ola.log_register_skin(cb_b, 0);
ola.log_set_target(0, 1 | skin_a | skin_b);
ola.log_info("multi skin");
let ret = ola.log_clear_skins();
if ret != 1 {
    return;
}
cpp
var ola = com("OlaPlug.OlaSoft")

var skinA = ola.LogRegisterSkin(cbA, 0)
var skinB = ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget(0, 1 | skinA | skinB)
ola.LogInfo("multi skin")
var ret = ola.LogClearSkins()
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")

skinA = ola.LogRegisterSkin(cbA, 0)
skinB = ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget 0, 1
ola.LogInfo "multi skin"
ret = ola.LogClearSkins()
text
.局部变量 ola, OLAPlug
.局部变量 ret, 整数型

ola.Create ()

.局部变量 skinA, 整数型
.局部变量 skinB, 整数型
skinA = ola.LogRegisterSkin (cbA, 0)
skinB = ola.LogRegisterSkin (cbB, 0)
ola.LogSetTarget (0, 位或 (1, 位或 (skinA, skinB)))
ola.LogInfo (“multi skin”)
ret = ola.LogClearSkins ()
aardio
import OLAPlugServer;
var ola = OLAPlugServer();

var skinA = ola.LogRegisterSkin(cbA, 0);
var skinB = ola.LogRegisterSkin(cbB, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
var ret = ola.LogClearSkins();
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer

整数 skinA = ola.LogRegisterSkin(cbA, 0)
整数 skinB = ola.LogRegisterSkin(cbB, 0)
ola.LogSetTarget(0, 1 位或 skinA 位或 skinB)
ola.LogInfo("multi skin")
整数 ret = ola.LogClearSkins()
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int skinA = ola.LogRegisterSkin((int64_t)(void*)&OnUiLog, 0);
int skinB = ola.LogRegisterSkin((int64_t)(void*)&OnNetLog, 0);
ola.LogSetTarget(0, 1 | skinA | skinB);
ola.LogInfo("multi skin");
int32_t ret = ola.LogClearSkins();

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();
long logger = 0;

// LogRegisterSkin ...; LogSetTarget(...);
int ret = LogClearSkins(instance);
csharp
using System.Runtime.InteropServices;

[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogClearSkins(long ola);

long instance = CreateCOLAPlugInterFace();
long logger = 0;

int ret = LogClearSkins(instance);
python
from ctypes import CDLL, c_int, c_int64

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
logger = 0

ret = ola.LogClearSkins(instance)

返回值

返回值说明
1成功。
0失败。

注意事项

项目说明
作用域仅清空全局 Skin 注册表,不销毁 logger 实例。
测试清理单元测试 / 用例结束时建议调用,避免 Skin 互相污染。

相关接口

接口说明
LogRegisterSkin注册。
LogUnregisterSkin注销单个。
OLALogSkinCallback回调类型。