主题
创建日志实例 - LogCreateInstance
函数简介
创建新的日志实例,用于实现多实例日志管理。
接口名称
LogCreateInstanceDLL调用
c
int64_t LogCreateInstance(int64_t instance, const char* instanceName);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| instanceName | 字符串 | 实例名称(用于标识,如 "NetworkLogger")。 |
示例
创建命名实例 → 配置 → LogInfoEx → LogDestroyInstance。默认实例句柄 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 Iftext
.局部变量 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)无需创建,始终存在。 |
| 路径 | 每个实例可以有独立的配置(路径、级别、格式等)。 |
| 适合需要分类管理日志的场景(按模块、按功能等) | 适合需要分类管理日志的场景(按模块、按功能等)。 |
