Skip to content

写入DEBUG日志Ex - LogDebugEx

函数简介

写入 DEBUG 级别日志(扩展版本),支持指定日志实例。

接口名称

LogDebugEx

DLL调用

c
int32_t LogDebugEx(int64_t instance, int64_t loggerHandle, const char* message);

参数说明

参数名类型说明
instance长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
loggerHandle长整数型日志实例句柄(0 表示默认实例)。
message字符串日志消息。

示例

推荐联动顺序:

logger = LogCreateInstance("DebugLogger")
        → LogSetLevel(logger, 1) → LogSetBaseDirectory → LogSetFileNamePattern
        → LogDebugEx(logger, "...") → LogFlush(logger) → LogDestroyInstance(logger)

DEBUG=1,开发调试信息LogCreateInstance 必须传入实例名;失败返回 0。

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int64_t logger = ola.LogCreateInstance("DebugLogger");
if (logger == 0) {
    return; // 创建失败
}

ola.LogSetLevel(logger, 1);              // DEBUG=1,开发调试信息
ola.LogSetBaseDirectory(logger, "D:\\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s");
ola.LogFlush(logger);
ola.LogDestroyInstance(logger);
csharp
using OLAPlug;

var ola = new OLAPlugServer();

long logger = ola.LogCreateInstance("DebugLogger");
if (logger == 0) return; // 创建失败

ola.LogSetLevel(logger, 1);              // DEBUG=1,开发调试信息
ola.LogSetBaseDirectory(logger, @"D:\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s");
ola.LogFlush(logger);
ola.LogDestroyInstance(logger);
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()

logger = ola.LogCreateInstance("DebugLogger")
if logger == 0:
    raise RuntimeError("LogCreateInstance failed")

ola.LogSetLevel(logger, 1)              # DEBUG=1,开发调试信息
ola.LogSetBaseDirectory(logger, r"D:\logs")
ola.LogSetFileNamePattern(logger, "app_{date}.log")

ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s")
ola.LogFlush(logger)
ola.LogDestroyInstance(logger)
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();

long logger = ola.LogCreateInstance("DebugLogger");
if (logger == 0) {
    return; // 创建失败
}

ola.LogSetLevel(logger, 1);              // DEBUG=1,开发调试信息
ola.LogSetBaseDirectory(logger, "D:\\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s");
ola.LogFlush(logger);
ola.LogDestroyInstance(logger);
go
import "github.com/ola/olaplug/olaplug"

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

logger := ola.LogCreateInstance("DebugLogger")
if logger == 0 {
    return // 创建失败
}

ola.LogSetLevel(logger, 1)              // DEBUG=1,开发调试信息
ola.LogSetBaseDirectory(logger, `D:\logs`)
ola.LogSetFileNamePattern(logger, "app_{date}.log")

ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s")
ola.LogFlush(logger)
ola.LogDestroyInstance(logger)
rust
use olaplug::OLAPlugServer;

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

let logger = ola.log_create_instance("DebugLogger");
if logger == 0 {
    return; // 创建失败
}

ola.log_set_level(logger, 1);              // DEBUG=1,开发调试信息
ola.log_set_base_directory(logger, r"D:\logs");
ola.log_set_file_name_pattern(logger, "app_{date}.log");

ola.log_debug_ex(logger, "cache hit key=user:1234 ttl=300s");
ola.log_flush(logger);
ola.log_destroy_instance(logger);
cpp
var ola = com("OlaPlug.OlaSoft")

var logger = ola.LogCreateInstance("DebugLogger")
if(logger != 0) {
    ola.LogSetLevel(logger, 1)              // DEBUG=1,开发调试信息
    ola.LogSetBaseDirectory(logger, "D:\\logs")
    ola.LogSetFileNamePattern(logger, "app_{date}.log")

    ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s")
    ola.LogFlush(logger)
    ola.LogDestroyInstance(logger)
}
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")

logger = ola.LogCreateInstance("DebugLogger")
If logger <> 0 Then
    ola.LogSetLevel logger, 1              ' DEBUG=1,开发调试信息
    ola.LogSetBaseDirectory logger, "D:\logs"
    ola.LogSetFileNamePattern logger, "app_{date}.log"

    ola.LogDebugEx logger, "cache hit key=user:1234 ttl=300s"
    ola.LogFlush logger
    ola.LogDestroyInstance logger
End If
text
.局部变量 ola, OLAPlug
.局部变量 logger, 长整数型

ola.Create ()
logger = ola.LogCreateInstance (“DebugLogger”)
.如果真 (logger ≠ 0)
    ola.LogSetLevel (logger, 1)              ' DEBUG=1,开发调试信息
    ola.LogSetBaseDirectory (logger, “D:\logs”)
    ola.LogSetFileNamePattern (logger, “app_{date}.log”)

    ola.LogDebugEx (logger, “cache hit key=user:1234 ttl=300s”)
    ola.LogFlush (logger)
    ola.LogDestroyInstance (logger)
.如果真结束
aardio
import OLAPlugServer;
var ola = OLAPlugServer();

var logger = ola.LogCreateInstance("DebugLogger");
if(logger != 0){
    ola.LogSetLevel(logger, 1);              // DEBUG=1,开发调试信息
    ola.LogSetBaseDirectory(logger, "D:\\logs");
    ola.LogSetFileNamePattern(logger, "app_{date}.log");

    ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s");
    ola.LogFlush(logger);
    ola.LogDestroyInstance(logger);
}
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer

长整数 logger = ola.LogCreateInstance("DebugLogger")
如果真 (logger ≠ 0)
{
    ola.LogSetLevel(logger, 1)              ' DEBUG=1,开发调试信息
    ola.LogSetBaseDirectory(logger, "D:\\logs")
    ola.LogSetFileNamePattern(logger, "app_{date}.log")

    ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s")
    ola.LogFlush(logger)
    ola.LogDestroyInstance(logger)
}
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int64_t logger = ola.LogCreateInstance("DebugLogger");
if (logger != 0) {
    ola.LogSetLevel(logger, 1);              // DEBUG=1,开发调试信息
    ola.LogSetBaseDirectory(logger, "D:\\logs");
    ola.LogSetFileNamePattern(logger, "app_{date}.log");

    ola.LogDebugEx(logger, "cache hit key=user:1234 ttl=300s");
    ola.LogFlush(logger);
    ola.LogDestroyInstance(logger);
}

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();

// Native: LogCreateInstance(instance, "name"); LogDebugEx(instance, loggerHandle, message)
long logger = LogCreateInstance(instance, "DebugLogger");
if (logger == 0) {
    return; // 创建失败
}

LogSetLevel(instance, logger, 1);
LogSetBaseDirectory(instance, logger, "D:\\logs");
LogSetFileNamePattern(instance, logger, "app_{date}.log");

LogDebugEx(instance, logger, "cache hit key=user:1234 ttl=300s");
LogFlush(instance, logger);
LogDestroyInstance(instance, logger);
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 LogDebugEx(long ola, long loggerHandle, string message);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogFlush(long ola, long loggerHandle);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogDestroyInstance(long ola, long loggerHandle);

long instance = CreateCOLAPlugInterFace();
long logger = LogCreateInstance(instance, "DebugLogger");
if (logger == 0) return;

LogSetLevel(instance, logger, 1);
LogSetBaseDirectory(instance, logger, @"D:\logs");
LogSetFileNamePattern(instance, logger, "app_{date}.log");
LogDebugEx(instance, logger, "cache hit key=user:1234 ttl=300s");
LogFlush(instance, logger);
LogDestroyInstance(instance, logger);
python
from ctypes import CDLL, c_int, c_int64, c_char_p

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
ola.LogCreateInstance.restype = c_int64
ola.LogCreateInstance.argtypes = [c_int64, c_char_p]
ola.LogSetLevel.argtypes = [c_int64, c_int64, c_int]
ola.LogSetBaseDirectory.argtypes = [c_int64, c_int64, c_char_p]
ola.LogSetFileNamePattern.argtypes = [c_int64, c_int64, c_char_p]
ola.LogDebugEx.argtypes = [c_int64, c_int64, c_char_p]
ola.LogFlush.argtypes = [c_int64, c_int64]
ola.LogDestroyInstance.argtypes = [c_int64, c_int64]

instance = ola.CreateCOLAPlugInterFace()
logger = ola.LogCreateInstance(instance, b"DebugLogger")
if logger == 0:
    raise RuntimeError("LogCreateInstance failed")

ola.LogSetLevel(instance, logger, 1)
ola.LogSetBaseDirectory(instance, logger, br"D:\logs")
ola.LogSetFileNamePattern(instance, logger, b"app_{date}.log")
ola.LogDebugEx(instance, logger, "cache hit key=user:1234 ttl=300s".encode("utf-8"))
ola.LogFlush(instance, logger)
ola.LogDestroyInstance(instance, logger)

返回值

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

注意事项

项目说明
DEBUG 级别用于调试信息DEBUG 级别用于调试信息,帮助开发者定位问题。
OLA_LOG_LEVEL_DEBUG只有当日志级别设置为 OLA_LOG_LEVEL_DEBUG (1) 或更低时才会输出。
LogDebug 的区别支持指定日志实例,适合多实例场景。
在开发阶段使用建议在开发阶段使用,生产环境可以提高日志级别以减少输出。
如果日志系统未初始化如果日志系统未初始化,第一次调用时会自动初始化。