主题
销毁日志实例 - LogDestroyInstance
函数简介
销毁日志实例并释放资源。
接口名称
LogDestroyInstanceDLL调用
c
int32_t LogDestroyInstance(int64_t instance, int64_t loggerHandle);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| loggerHandle | 长整数型 | 要销毁的日志实例句柄。 |
示例
创建 → 使用 → 销毁。不能销毁默认实例(句柄 0)。
SDK 调用
cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
int64_t net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) {
return;
}
ola.LogInfoEx(net, "before destroy");
int ret = ola.LogDestroyInstance(net);
if (ret != 1) {
return;
}
// 不可:ola.LogDestroyInstance(0);csharp
using System;
using OLAPlug;
var ola = new OLAPlugServer();
long net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) return;
ola.LogInfoEx(net, "before destroy");
int ret = ola.LogDestroyInstance(net);
if (ret != 1) return;
// 不可:ola.LogDestroyInstance(0);python
from OLAPlugServer import OLAPlugServer
ola = OLAPlugServer()
net = ola.LogCreateInstance("NetworkLogger")
if net == 0:
raise RuntimeError("LogCreateInstance failed")
ola.LogInfoEx(net, "before destroy")
ret = ola.LogDestroyInstance(net)
if ret != 1:
raise RuntimeError("LogDestroyInstance failed")
# 不可:ola.LogDestroyInstance(0)java
import com.olaplug.OLAPlugServer;
OLAPlugServer ola = new OLAPlugServer();
long net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) {
return;
}
ola.LogInfoEx(net, "before destroy");
int ret = ola.LogDestroyInstance(net);
if (ret != 1) {
return;
}go
import "github.com/ola/olaplug/olaplug"
ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()
net := ola.LogCreateInstance("NetworkLogger")
if net == 0 {
return
}
ola.LogInfoEx(net, "before destroy")
ret := ola.LogDestroyInstance(net)
if ret != 1 {
return
}rust
use olaplug::OLAPlugServer;
let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();
let net = ola.log_create_instance("NetworkLogger");
if net == 0 {
return;
}
ola.log_info_ex(net, "before destroy");
let ret = ola.log_destroy_instance(net);
if ret != 1 {
return;
}cpp
var ola = com("OlaPlug.OlaSoft")
var net = ola.LogCreateInstance("NetworkLogger")
if(net != 0) {
ola.LogInfoEx(net, "before destroy")
var ret = ola.LogDestroyInstance(net)
}vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
net = ola.LogCreateInstance("NetworkLogger")
If net <> 0 Then
ola.LogInfoEx net, "before destroy"
ret = ola.LogDestroyInstance(net)
End Iftext
.局部变量 ola, OLAPlug
.局部变量 ret, 整数型
.局部变量 net, 长整数型
ola.Create ()
net = ola.LogCreateInstance (“NetworkLogger”)
.如果真 (net ≠ 0)
ola.LogInfoEx (net, “before destroy”)
ret = ola.LogDestroyInstance (net)
.如果真结束aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var net = ola.LogCreateInstance("NetworkLogger");
if(net != 0){
ola.LogInfoEx(net, "before destroy");
var ret = ola.LogDestroyInstance(net);
}text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
长整数 net = ola.LogCreateInstance("NetworkLogger")
如果真 (net ≠ 0)
{
ola.LogInfoEx(net, "before destroy")
整数 ret = ola.LogDestroyInstance(net)
}cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
int64_t net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) {
return;
}
ola.LogInfoEx(net, "before destroy");
int32_t ret = ola.LogDestroyInstance(net);
if (ret != 1) {
return;
}原生 DLL 调用
cpp
long instance = CreateCOLAPlugInterFace();
long logger = 0;
int64_t net = LogCreateInstance(instance, "NetworkLogger");
if (net == 0) {
return;
}
LogInfoEx(instance, net, "before destroy");
int ret = LogDestroyInstance(instance, net);
// 不可销毁 0csharp
using System.Runtime.InteropServices;
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long LogCreateInstance(long ola, string instanceName);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogInfoEx(long ola, long loggerHandle, string message);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogDestroyInstance(long ola, long loggerHandle);
long instance = CreateCOLAPlugInterFace();
long logger = 0;
long net = LogCreateInstance(instance, "NetworkLogger");
if (net == 0) return;
LogInfoEx(instance, net, "before destroy");
int ret = LogDestroyInstance(instance, net);python
from ctypes import CDLL, c_int, c_int64
ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
logger = 0
net = ola.LogCreateInstance(instance, b"NetworkLogger")
if not net:
raise RuntimeError("LogCreateInstance failed")
ola.LogInfoEx(instance, net, b"before destroy")
ola.LogDestroyInstance(instance, net)返回值
| 返回值 | 说明 |
|---|---|
1 | 成功。 |
0 | 失败(实例不存在或为默认实例)。 |
注意事项
| 项目 | 说明 |
|---|---|
| 不能销毁默认实例(句柄 = 0) | 不能销毁默认实例(句柄 = 0)。 |
| 销毁后 | 销毁后,该句柄将失效,不可再使用。 |
| 销毁前会自动刷新所有缓冲区中的日志 | 销毁前会自动刷新所有缓冲区中的日志。 |
| 销毁后会释放所有相关资源(文件句柄、内存等) | 销毁后会释放所有相关资源(文件句柄、内存等)。 |
| 建议在程序退出前销毁所有自定义实例 | 建议在程序退出前销毁所有自定义实例。 |
