Skip to content

创建日志实例 - LogCreateInstance

函数简介

创建新的日志实例,用于实现多实例日志管理。

接口名称

LogCreateInstance

DLL调用

c
int64_t LogCreateInstance(int64_t instance, const char* instanceName);

参数说明

参数名类型说明
instance长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
instanceName字符串实例名称(用于标识,如 "NetworkLogger")。

示例

创建命名实例 → 配置 → LogInfoExLogDestroyInstance。默认实例句柄 0 无需创建。

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int64_t net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) {
    return;
}
ola.LogSetLevel(net, 2); // INFO
ola.LogSetBaseDirectory(net, "D:\\logs");
ola.LogSetFileNamePattern(net, "network_{date}.log");
ola.LogInfoEx(net, "network logger ready");
ola.LogDestroyInstance(net);
csharp
using System;
using OLAPlug;

var ola = new OLAPlugServer();

long net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) return;
ola.LogSetLevel(net, 2); // INFO
ola.LogSetBaseDirectory(net, @"D:\logs");
ola.LogSetFileNamePattern(net, "network_{date}.log");
ola.LogInfoEx(net, "network logger ready");
ola.LogDestroyInstance(net);
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()

net = ola.LogCreateInstance("NetworkLogger")
if net == 0:
    raise RuntimeError("LogCreateInstance failed")
ola.LogSetLevel(net, 2)  # INFO
ola.LogSetBaseDirectory(net, r"D:\logs")
ola.LogSetFileNamePattern(net, "network_{date}.log")
ola.LogInfoEx(net, "network logger ready")
ola.LogDestroyInstance(net)
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();

long net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) {
    return;
}
ola.LogSetLevel(net, 2);
ola.LogSetBaseDirectory(net, "D:\\logs");
ola.LogSetFileNamePattern(net, "network_{date}.log");
ola.LogInfoEx(net, "network logger ready");
ola.LogDestroyInstance(net);
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.LogSetLevel(net, 2)
ola.LogSetBaseDirectory(net, `D:\logs`)
ola.LogSetFileNamePattern(net, "network_{date}.log")
ola.LogInfoEx(net, "network logger ready")
ola.LogDestroyInstance(net)
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_set_level(net, 2);
ola.log_set_base_directory(net, r"D:\logs");
ola.log_set_file_name_pattern(net, "network_{date}.log");
ola.log_info_ex(net, "network logger ready");
ola.log_destroy_instance(net);
cpp
var ola = com("OlaPlug.OlaSoft")

var net = ola.LogCreateInstance("NetworkLogger")
if(net != 0) {
    ola.LogSetLevel(net, 2)
    ola.LogSetBaseDirectory(net, "D:\\logs")
    ola.LogSetFileNamePattern(net, "network_{date}.log")
    ola.LogInfoEx(net, "network logger ready")
    ola.LogDestroyInstance(net)
}
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")

net = ola.LogCreateInstance("NetworkLogger")
If net <> 0 Then
    ola.LogSetLevel net, 2
    ola.LogSetBaseDirectory net, "D:\logs"
    ola.LogSetFileNamePattern net, "network_{date}.log"
    ola.LogInfoEx net, "network logger ready"
    ola.LogDestroyInstance net
End If
text
.局部变量 ola, OLAPlug
.局部变量 ret, 整数型
.局部变量 net, 长整数型

ola.Create ()

net = ola.LogCreateInstance (“NetworkLogger”)
.如果真 (net ≠ 0)
    ola.LogSetLevel (net, 2)
    ola.LogSetBaseDirectory (net, “D:\logs”)
    ola.LogSetFileNamePattern (net, “network_{date}.log”)
    ola.LogInfoEx (net, “network logger ready”)
    ola.LogDestroyInstance (net)
.如果真结束
aardio
import OLAPlugServer;
var ola = OLAPlugServer();

var net = ola.LogCreateInstance("NetworkLogger");
if(net != 0){
    ola.LogSetLevel(net, 2);
    ola.LogSetBaseDirectory(net, "D:\\logs");
    ola.LogSetFileNamePattern(net, "network_{date}.log");
    ola.LogInfoEx(net, "network logger ready");
    ola.LogDestroyInstance(net);
}
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer

长整数 net = ola.LogCreateInstance("NetworkLogger")
如果真 (net ≠ 0)
{
    ola.LogSetLevel(net, 2)
    ola.LogSetBaseDirectory(net, "D:\\logs")
    ola.LogSetFileNamePattern(net, "network_{date}.log")
    ola.LogInfoEx(net, "network logger ready")
    ola.LogDestroyInstance(net)
}
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int64_t net = ola.LogCreateInstance("NetworkLogger");
if (net == 0) {
    return;
}
ola.LogSetLevel(net, 2);
ola.LogSetBaseDirectory(net, "D:\\logs");
ola.LogSetFileNamePattern(net, "network_{date}.log");
ola.LogInfoEx(net, "network logger ready");
ola.LogDestroyInstance(net);

原生 DLL 调用

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

int64_t net = LogCreateInstance(instance, "NetworkLogger");
if (net == 0) {
    return;
}
LogSetLevel(instance, net, 2);
LogSetBaseDirectory(instance, net, "D:\\logs");
LogSetFileNamePattern(instance, net, "network_{date}.log");
LogInfoEx(instance, net, "network logger ready");
LogDestroyInstance(instance, net);
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 LogSetLevel(long ola, long loggerHandle, int level);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogSetBaseDirectory(long ola, long loggerHandle, string baseDirectory);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogSetFileNamePattern(long ola, long loggerHandle, string fileNamePattern);
[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;
LogSetLevel(instance, net, 2);
LogSetBaseDirectory(instance, net, @"D:\logs");
LogSetFileNamePattern(instance, net, "network_{date}.log");
LogInfoEx(instance, net, "network logger ready");
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.LogSetLevel(instance, net, 2)
ola.LogSetBaseDirectory(instance, net, b"D:\\logs")
ola.LogSetFileNamePattern(instance, net, b"network_{date}.log")
ola.LogInfoEx(instance, net, b"network logger ready")
ola.LogDestroyInstance(instance, net)

返回值

返回值说明
(返回值)日志实例句柄(长整数型),失败返回 0。

注意事项

项目说明
新创建的实例使用默认配置新创建的实例使用默认配置。
LogDestroyInstance实例句柄必须通过 LogDestroyInstance 释放。
实例(句柄 = 0)无需创建默认实例(句柄 = 0)无需创建,始终存在。
路径每个实例可以有独立的配置(路径、级别、格式等)。
适合需要分类管理日志的场景(按模块、按功能等)适合需要分类管理日志的场景(按模块、按功能等)。