Skip to content

写入INFO日志Ex - LogInfoEx

函数简介

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

接口名称

LogInfoEx

DLL调用

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

参数说明

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

示例

推荐联动顺序:

logger = LogCreateInstance("InfoLogger")
        → LogSetLevel(logger, 2) → LogSetBaseDirectory → LogSetFileNamePattern
        → LogInfoEx(logger, "...") → LogFlush(logger) → LogDestroyInstance(logger)

INFO=2,正常运行信息(默认级别)LogCreateInstance 必须传入实例名;失败返回 0。

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

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

ola.LogSetLevel(logger, 2);              // INFO=2,正常运行信息(默认级别)
ola.LogSetBaseDirectory(logger, "D:\\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogInfoEx(logger, "服务启动完成,监听端口 8080");
ola.LogFlush(logger);
ola.LogDestroyInstance(logger);
csharp
using OLAPlug;

var ola = new OLAPlugServer();

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

ola.LogSetLevel(logger, 2);              // INFO=2,正常运行信息(默认级别)
ola.LogSetBaseDirectory(logger, @"D:\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogInfoEx(logger, "服务启动完成,监听端口 8080");
ola.LogFlush(logger);
ola.LogDestroyInstance(logger);
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()

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

ola.LogSetLevel(logger, 2)              # INFO=2,正常运行信息(默认级别)
ola.LogSetBaseDirectory(logger, r"D:\logs")
ola.LogSetFileNamePattern(logger, "app_{date}.log")

ola.LogInfoEx(logger, "服务启动完成,监听端口 8080")
ola.LogFlush(logger)
ola.LogDestroyInstance(logger)
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();

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

ola.LogSetLevel(logger, 2);              // INFO=2,正常运行信息(默认级别)
ola.LogSetBaseDirectory(logger, "D:\\logs");
ola.LogSetFileNamePattern(logger, "app_{date}.log");

ola.LogInfoEx(logger, "服务启动完成,监听端口 8080");
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("InfoLogger")
if logger == 0 {
    return // 创建失败
}

ola.LogSetLevel(logger, 2)              // INFO=2,正常运行信息(默认级别)
ola.LogSetBaseDirectory(logger, `D:\logs`)
ola.LogSetFileNamePattern(logger, "app_{date}.log")

ola.LogInfoEx(logger, "服务启动完成,监听端口 8080")
ola.LogFlush(logger)
ola.LogDestroyInstance(logger)
rust
use olaplug::OLAPlugServer;

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

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

ola.log_set_level(logger, 2);              // INFO=2,正常运行信息(默认级别)
ola.log_set_base_directory(logger, r"D:\logs");
ola.log_set_file_name_pattern(logger, "app_{date}.log");

ola.log_info_ex(logger, "服务启动完成,监听端口 8080");
ola.log_flush(logger);
ola.log_destroy_instance(logger);
cpp
var ola = com("OlaPlug.OlaSoft")

var logger = ola.LogCreateInstance("InfoLogger")
if(logger != 0) {
    ola.LogSetLevel(logger, 2)              // INFO=2,正常运行信息(默认级别)
    ola.LogSetBaseDirectory(logger, "D:\\logs")
    ola.LogSetFileNamePattern(logger, "app_{date}.log")

    ola.LogInfoEx(logger, "服务启动完成,监听端口 8080")
    ola.LogFlush(logger)
    ola.LogDestroyInstance(logger)
}
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")

logger = ola.LogCreateInstance("InfoLogger")
If logger <> 0 Then
    ola.LogSetLevel logger, 2              ' INFO=2,正常运行信息(默认级别)
    ola.LogSetBaseDirectory logger, "D:\logs"
    ola.LogSetFileNamePattern logger, "app_{date}.log"

    ola.LogInfoEx logger, "服务启动完成,监听端口 8080"
    ola.LogFlush logger
    ola.LogDestroyInstance logger
End If
text
.局部变量 ola, OLAPlug
.局部变量 logger, 长整数型

ola.Create ()
logger = ola.LogCreateInstance (“InfoLogger”)
.如果真 (logger ≠ 0)
    ola.LogSetLevel (logger, 2)              ' INFO=2,正常运行信息(默认级别)
    ola.LogSetBaseDirectory (logger, “D:\logs”)
    ola.LogSetFileNamePattern (logger, “app_{date}.log”)

    ola.LogInfoEx (logger, “服务启动完成,监听端口 8080”)
    ola.LogFlush (logger)
    ola.LogDestroyInstance (logger)
.如果真结束
aardio
import OLAPlugServer;
var ola = OLAPlugServer();

var logger = ola.LogCreateInstance("InfoLogger");
if(logger != 0){
    ola.LogSetLevel(logger, 2);              // INFO=2,正常运行信息(默认级别)
    ola.LogSetBaseDirectory(logger, "D:\\logs");
    ola.LogSetFileNamePattern(logger, "app_{date}.log");

    ola.LogInfoEx(logger, "服务启动完成,监听端口 8080");
    ola.LogFlush(logger);
    ola.LogDestroyInstance(logger);
}
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer

长整数 logger = ola.LogCreateInstance("InfoLogger")
如果真 (logger ≠ 0)
{
    ola.LogSetLevel(logger, 2)              ' INFO=2,正常运行信息(默认级别)
    ola.LogSetBaseDirectory(logger, "D:\\logs")
    ola.LogSetFileNamePattern(logger, "app_{date}.log")

    ola.LogInfoEx(logger, "服务启动完成,监听端口 8080")
    ola.LogFlush(logger)
    ola.LogDestroyInstance(logger)
}
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;

int64_t logger = ola.LogCreateInstance("InfoLogger");
if (logger != 0) {
    ola.LogSetLevel(logger, 2);              // INFO=2,正常运行信息(默认级别)
    ola.LogSetBaseDirectory(logger, "D:\\logs");
    ola.LogSetFileNamePattern(logger, "app_{date}.log");

    ola.LogInfoEx(logger, "服务启动完成,监听端口 8080");
    ola.LogFlush(logger);
    ola.LogDestroyInstance(logger);
}

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();

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

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

LogInfoEx(instance, logger, "服务启动完成,监听端口 8080");
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 LogInfoEx(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, "InfoLogger");
if (logger == 0) return;

LogSetLevel(instance, logger, 2);
LogSetBaseDirectory(instance, logger, @"D:\logs");
LogSetFileNamePattern(instance, logger, "app_{date}.log");
LogInfoEx(instance, logger, "服务启动完成,监听端口 8080");
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.LogInfoEx.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"InfoLogger")
if logger == 0:
    raise RuntimeError("LogCreateInstance failed")

ola.LogSetLevel(instance, logger, 2)
ola.LogSetBaseDirectory(instance, logger, br"D:\logs")
ola.LogSetFileNamePattern(instance, logger, b"app_{date}.log")
ola.LogInfoEx(instance, logger, "服务启动完成,监听端口 8080".encode("utf-8"))
ola.LogFlush(instance, logger)
ola.LogDestroyInstance(instance, logger)

返回值

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

注意事项

项目说明
INFO 级别用于记录程序的正常运行信息INFO 级别用于记录程序的正常运行信息。
OLA_LOG_LEVEL_INFO只有当日志级别设置为 OLA_LOG_LEVEL_INFO (2) 或更低时才会输出。
LogInfo 的区别支持指定日志实例,适合多实例场景。
这是默认的日志级别这是默认的日志级别,适合生产环境使用。
如果日志系统未初始化如果日志系统未初始化,第一次调用时会自动初始化。