Skip to content

设置文件追加模式 - LogSetAppendMode

函数简介

设置日志文件的追加模式,控制程序重启后是继续追加到现有文件还是创建新文件。

接口名称

LogSetAppendMode

DLL调用

c
int32_t LogSetAppendMode(int64_t instance, int64_t loggerHandle, int32_t enableAppend);

参数说明

参数名类型说明
instance长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
loggerHandle长整数型日志实例句柄(0 表示默认实例)。
enableAppend整数型是否启用追加(1 启用,0 禁用)。

示例

1=追加到已有文件(重启续写);0=覆盖/新开。默认通常为追加。

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
const int64_t logger = 0; // 默认实例

ola.LogSetFilePath(logger, "D:\\logs\\app.log");
// 启用追加:重启后继续写入同一文件
int ret = ola.LogSetAppendMode(logger, 1); // enable append
if (ret != 1) {
    return;
}
ola.LogInfo("append mode on");
// 若需每次启动覆盖:LogSetAppendMode(logger, 0)
csharp
using System;
using OLAPlug;

var ola = new OLAPlugServer();
long logger = 0;

ola.LogSetFilePath(logger, @"D:\logs\app.log");
// 启用追加:重启后继续写入同一文件
int ret = ola.LogSetAppendMode(logger, 1); // enable append
if (ret != 1) return;
ola.LogInfo("append mode on");
// 若需每次启动覆盖:LogSetAppendMode(logger, 0)
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()
logger = 0

ola.LogSetFilePath(logger, r"D:\logs\app.log")
# 启用追加:重启后继续写入同一文件
ret = ola.LogSetAppendMode(logger, 1)  # enable append
if ret != 1:
    raise RuntimeError("failed")
ola.LogInfo("append mode on")
# 若需每次启动覆盖:LogSetAppendMode(logger, 0)
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();
long logger = 0;

ola.LogSetFilePath(logger, "D:\\logs\\app.log");
// 启用追加:重启后继续写入同一文件
int ret = ola.LogSetAppendMode(logger, 1); // enable append
if (ret != 1) {
    return;
}
ola.LogInfo("append mode on");
// 若需每次启动覆盖:LogSetAppendMode(logger, 0)
go
import "github.com/ola/olaplug/olaplug"

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

ola.LogSetFilePath(logger, `D:\logs\app.log`)
// 启用追加:重启后继续写入同一文件
ret := ola.LogSetAppendMode(logger, 1) // enable append
if ret != 1 {
    return
}
ola.LogInfo("append mode on")
// 若需每次启动覆盖:LogSetAppendMode(logger, 0)
rust
use olaplug::OLAPlugServer;

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

ola.log_set_file_path(logger, r"D:\logs\app.log");
// 启用追加:重启后继续写入同一文件
let ret = ola.log_set_append_mode(logger, 1); // enable append
if ret != 1 {
    return;
}
ola.log_info("append mode on");
// 若需每次启动覆盖:LogSetAppendMode(logger, 0)
cpp
var ola = com("OlaPlug.OlaSoft")
var logger = 0

ola.LogSetFilePath(logger, "D:\\logs\\app.log")
// 启用追加:重启后继续写入同一文件
var ret = ola.LogSetAppendMode(logger, 1) // enable append
if(ret == 1) {
    ola.LogInfo("append mode on")
    // 若需每次启动覆盖:LogSetAppendMode(logger, 0)
}
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
logger = 0

ola.LogSetFilePath logger, "D:\logs\app.log"
' 启用追加:重启后继续写入同一文件
ret = ola.LogSetAppendMode(logger, 1)
If ret = 1 Then
    ola.LogInfo "append mode on"
    ' 若需每次启动覆盖:LogSetAppendMode(logger, 0)
End If
text
.局部变量 ola, OLAPlug
.局部变量 ret, 整数型
.局部变量 logger, 长整数型

ola.Create ()
logger = 0

ola.LogSetFilePath (logger, “D:\logs\app.log”)
' 启用追加:重启后继续写入同一文件
ret = ola.LogSetAppendMode (logger, 1)  ' enable append
.如果真 (ret = 1)
    ola.LogInfo (“append mode on”)
    ' 若需每次启动覆盖:LogSetAppendMode(logger, 0)
.如果真结束
aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var logger = 0;

ola.LogSetFilePath(logger, "D:\\logs\\app.log");
// 启用追加:重启后继续写入同一文件
var ret = ola.LogSetAppendMode(logger, 1); // enable append
if(ret == 1){
    ola.LogInfo("append mode on");
    // 若需每次启动覆盖:LogSetAppendMode(logger, 0)
}
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
长整数 logger = 0

ola.LogSetFilePath(logger, "D:\\logs\\app.log")
' 启用追加:重启后继续写入同一文件
整数 ret = ola.LogSetAppendMode(logger, 1)  ' enable append
如果真 (ret = 1)
{
    ola.LogInfo("append mode on")
    ' 若需每次启动覆盖:LogSetAppendMode(logger, 0)
}
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
int64_t logger = 0;

ola.LogSetFilePath(logger, "D:\\logs\\app.log");
// 启用追加:重启后继续写入同一文件
int32_t ret = ola.LogSetAppendMode(logger, 1); // enable append
if (ret != 1) {
    return;
}
ola.LogInfo("append mode on");
// 若需每次启动覆盖:LogSetAppendMode(logger, 0)

原生 DLL 调用

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

LogSetFilePath(instance, logger, "D:\\logs\\app.log");
int ret = LogSetAppendMode(instance, logger, 1); // 追加
if (ret != 1) {
    return;
}
LogInfo(instance, "append mode on");
// LogSetAppendMode(instance, logger, 0); // 覆盖
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 int LogSetFilePath(long ola, long loggerHandle, string logFilePath);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogSetAppendMode(long ola, long loggerHandle, int enableAppend);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int LogInfo(long ola, string message);

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

LogSetFilePath(instance, logger, @"D:\logs\app.log");
int ret = LogSetAppendMode(instance, logger, 1);
if (ret != 1) return;
LogInfo(instance, "append mode on");
python
from ctypes import CDLL, c_int, c_int64

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
logger = 0

ola.LogSetFilePath(instance, logger, b"D:\\logs\\app.log")
ret = ola.LogSetAppendMode(instance, logger, 1)
if ret != 1:
    raise RuntimeError("LogSetAppendMode failed")
ola.LogInfo(instance, b"append mode on")

返回值

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

注意事项

项目说明
默认值1(启用追加)。
启用追加模式时启用追加模式时,程序重启后继续追加到现有文件,适合长期运行的服务程序。
禁用追加模式时禁用追加模式时,程序重启后会将现有文件重命名为备份,然后创建新文件。
修改后立即生效修改后立即生效,如果日志系统已初始化,会自动重新初始化。