Skip to content

写入WARN日志Ex - LogWarnEx

函数简介

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

接口名称

LogWarnEx

DLL调用

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

参数说明

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

示例

推荐联动顺序:

logger = LogCreateInstance("WarnLogger")
        → LogSetLevel(logger, 3) → LogSetBaseDirectory → LogSetFileNamePattern
        → LogWarnEx(logger, "...") → LogFlush(logger) → LogDestroyInstance(logger)

WARN=3,可恢复的异常或风险提示LogCreateInstance 必须传入实例名;失败返回 0。

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

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

ola.LogSetLevel(logger, 3);              // WARN=3,可恢复的异常或风险提示
ola.LogSetBaseDirectory(logger, "D:\\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次");
ola.LogFlush(logger);
ola.LogDestroyInstance(logger);
csharp
using OLAPlug;

var ola = new OLAPlugServer();

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

ola.LogSetLevel(logger, 3);              // WARN=3,可恢复的异常或风险提示
ola.LogSetBaseDirectory(logger, @"D:\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次");
ola.LogFlush(logger);
ola.LogDestroyInstance(logger);
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()

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

ola.LogSetLevel(logger, 3)              # WARN=3,可恢复的异常或风险提示
ola.LogSetBaseDirectory(logger, r"D:\logs")
ola.LogSetFileNamePattern(logger, "app_{date}.log")

ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次")
ola.LogFlush(logger)
ola.LogDestroyInstance(logger)
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();

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

ola.LogSetLevel(logger, 3);              // WARN=3,可恢复的异常或风险提示
ola.LogSetBaseDirectory(logger, "D:\\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次");
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("WarnLogger")
if logger == 0 {
    return // 创建失败
}

ola.LogSetLevel(logger, 3)              // WARN=3,可恢复的异常或风险提示
ola.LogSetBaseDirectory(logger, `D:\logs`)
ola.LogSetFileNamePattern(logger, "app_{date}.log")

ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次")
ola.LogFlush(logger)
ola.LogDestroyInstance(logger)
rust
use olaplug::OLAPlugServer;

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

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

ola.log_set_level(logger, 3);              // WARN=3,可恢复的异常或风险提示
ola.log_set_base_directory(logger, r"D:\logs");
ola.log_set_file_name_pattern(logger, "app_{date}.log");

ola.log_warn_ex(logger, "重试次数接近上限,剩余 1 次");
ola.log_flush(logger);
ola.log_destroy_instance(logger);
cpp
var ola = com("OlaPlug.OlaSoft")

var logger = ola.LogCreateInstance("WarnLogger")
if(logger != 0) {
    ola.LogSetLevel(logger, 3)              // WARN=3,可恢复的异常或风险提示
    ola.LogSetBaseDirectory(logger, "D:\\logs")
    ola.LogSetFileNamePattern(logger, "app_{date}.log")

    ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次")
    ola.LogFlush(logger)
    ola.LogDestroyInstance(logger)
}
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")

logger = ola.LogCreateInstance("WarnLogger")
If logger <> 0 Then
    ola.LogSetLevel logger, 3              ' WARN=3,可恢复的异常或风险提示
    ola.LogSetBaseDirectory logger, "D:\logs"
    ola.LogSetFileNamePattern logger, "app_{date}.log"

    ola.LogWarnEx logger, "重试次数接近上限,剩余 1 次"
    ola.LogFlush logger
    ola.LogDestroyInstance logger
End If
text
.局部变量 ola, OLAPlug
.局部变量 logger, 长整数型

ola.Create ()
logger = ola.LogCreateInstance (“WarnLogger”)
.如果真 (logger ≠ 0)
    ola.LogSetLevel (logger, 3)              ' WARN=3,可恢复的异常或风险提示
    ola.LogSetBaseDirectory (logger, “D:\logs”)
    ola.LogSetFileNamePattern (logger, “app_{date}.log”)

    ola.LogWarnEx (logger, “重试次数接近上限,剩余 1 次”)
    ola.LogFlush (logger)
    ola.LogDestroyInstance (logger)
.如果真结束
aardio
import OLAPlugServer;
var ola = OLAPlugServer();

var logger = ola.LogCreateInstance("WarnLogger");
if(logger != 0){
    ola.LogSetLevel(logger, 3);              // WARN=3,可恢复的异常或风险提示
    ola.LogSetBaseDirectory(logger, "D:\\logs");
    ola.LogSetFileNamePattern(logger, "app_{date}.log");

    ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次");
    ola.LogFlush(logger);
    ola.LogDestroyInstance(logger);
}
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer

长整数 logger = ola.LogCreateInstance("WarnLogger")
如果真 (logger ≠ 0)
{
    ola.LogSetLevel(logger, 3)              ' WARN=3,可恢复的异常或风险提示
    ola.LogSetBaseDirectory(logger, "D:\\logs")
    ola.LogSetFileNamePattern(logger, "app_{date}.log")

    ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次")
    ola.LogFlush(logger)
    ola.LogDestroyInstance(logger)
}
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int64_t logger = ola.LogCreateInstance("WarnLogger");
if (logger != 0) {
    ola.LogSetLevel(logger, 3);              // WARN=3,可恢复的异常或风险提示
    ola.LogSetBaseDirectory(logger, "D:\\logs");
    ola.LogSetFileNamePattern(logger, "app_{date}.log");

    ola.LogWarnEx(logger, "重试次数接近上限,剩余 1 次");
    ola.LogFlush(logger);
    ola.LogDestroyInstance(logger);
}

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();

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

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

LogWarnEx(instance, logger, "重试次数接近上限,剩余 1 次");
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 LogWarnEx(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, "WarnLogger");
if (logger == 0) return;

LogSetLevel(instance, logger, 3);
LogSetBaseDirectory(instance, logger, @"D:\logs");
LogSetFileNamePattern(instance, logger, "app_{date}.log");
LogWarnEx(instance, logger, "重试次数接近上限,剩余 1 次");
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.LogWarnEx.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"WarnLogger")
if logger == 0:
    raise RuntimeError("LogCreateInstance failed")

ola.LogSetLevel(instance, logger, 3)
ola.LogSetBaseDirectory(instance, logger, br"D:\logs")
ola.LogSetFileNamePattern(instance, logger, b"app_{date}.log")
ola.LogWarnEx(instance, logger, "重试次数接近上限,剩余 1 次".encode("utf-8"))
ola.LogFlush(instance, logger)
ola.LogDestroyInstance(instance, logger)

返回值

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

注意事项

项目说明
WARN 级别用于记录潜在的问题或异常情况WARN 级别用于记录潜在的问题或异常情况。
OLA_LOG_LEVEL_WARN只有当日志级别设置为 OLA_LOG_LEVEL_WARN (3) 或更低时才会输出。
LogWarn 的区别支持指定日志实例,适合多实例场景。
WARN 级别的日志会立即刷新到文件(如果设置了WARN 级别的日志会立即刷新到文件(如果设置了自动刷新间隔)。
如果日志系统未初始化如果日志系统未初始化,第一次调用时会自动初始化。