Skip to content

销毁日志实例 - LogDestroyInstance

函数简介

销毁日志实例并释放资源。

接口名称

LogDestroyInstance

DLL调用

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 If
text
.局部变量 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);
// 不可销毁 0
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 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)。
销毁后销毁后,该句柄将失效,不可再使用。
销毁前会自动刷新所有缓冲区中的日志销毁前会自动刷新所有缓冲区中的日志。
销毁后会释放所有相关资源(文件句柄、内存等)销毁后会释放所有相关资源(文件句柄、内存等)。
建议在程序退出前销毁所有自定义实例建议在程序退出前销毁所有自定义实例。