🔨 添加日志系统设置.

This commit is contained in:
lijiahang
2025-01-21 10:05:36 +08:00
parent dc42a31711
commit 81b9bacb96
4 changed files with 154 additions and 27 deletions

View File

@@ -31,14 +31,119 @@ package org.dromara.visor.common.constant;
*/ */
public interface ConfigKeys { public interface ConfigKeys {
/**
* SFTP 文件预览大小
*/
String SFTP_PREVIEW_SIZE = "sftp_previewSize";
/**
* SFTP 重复文件备份
*/
String SFTP_UPLOAD_PRESENT_BACKUP = "sftp_uploadPresentBackup";
/**
* SFTP 备份文件名称
*/
String SFTP_UPLOAD_BACKUP_FILE_NAME = "sftp_uploadBackupFileName";
/** /**
* 加密公钥 * 加密公钥
*/ */
String ENCRYPT_PUBLIC_KEY = "encrypt.publicKey"; String ENCRYPT_PUBLIC_KEY = "encrypt_publicKey";
/** /**
* 加密私钥 * 加密私钥
*/ */
String ENCRYPT_PRIVATE_KEY = "encrypt.privateKey"; String ENCRYPT_PRIVATE_KEY = "encrypt_privateKey";
/**
* 日志前端显示行数
*/
String LOG_WEB_SCROLL_LINES = "log_webScrollLines";
/**
* 日志加载偏移行
*/
String LOG_TRACKER_LOAD_LINES = "log_trackerLoadLines";
/**
* 日志加载间隔毫秒
*/
String LOG_TRACKER_LOAD_INTERVAL = "log_trackerLoadInterval";
/**
* 是否生成详细的执行日志
*/
String LOG_EXEC_DETAIL_LOG = "log_execDetailLog";
/**
* 凭证有效期分
*/
String LOGIN_LOGIN_SESSION_TIME = "login_loginSessionTime";
/**
* 允许多端登录
*/
String LOGIN_ALLOW_MULTI_DEVICE = "login_allowMultiDevice";
/**
* 允许凭证续签
*/
String LOGIN_ALLOW_REFRESH = "login_allowRefresh";
/**
* 凭证续签最大次数
*/
String LOGIN_MAX_REFRESH_COUNT = "login_maxRefreshCount";
/**
* 凭证续签间隔分
*/
String LOGIN_REFRESH_INTERVAL = "login_refreshInterval";
/**
* 登录失败锁定
*/
String LOGIN_LOGIN_FAILED_LOCK = "login_loginFailedLock";
/**
* 登录失败锁定阈值分
*/
String LOGIN_LOGIN_FAILED_LOCK_THRESHOLD = "login_loginFailedLockThreshold";
/**
* 登录失败锁定时间分
*/
String LOGIN_LOGIN_FAILED_LOCK_TIME = "login_loginFailedLockTime";
/**
* 登录失败发信
*/
String LOGIN_LOGIN_FAILED_SEND = "login_loginFailedSend";
/**
* 登录失败发信阈值
*/
String LOGIN_LOGIN_FAILED_SEND_THRESHOLD = "login_loginFailedSendThreshold";
/**
* 是否开启自动清理命令记录
*/
String AUTO_CLEAR_EXEC_LOG_ENABLED = "autoClear_execLogEnabled";
/**
* 自动清理命令记录保留天数
*/
String AUTO_CLEAR_EXEC_LOG_KEEP_DAYS = "autoClear_execLogKeepDays";
/**
* 是否开启自动清理终端连接记录
*/
String AUTO_CLEAR_TERMINAL_LOG_ENABLED = "autoClear_terminalLogEnabled";
/**
* 自动清理终端连接记录保留天数
*/
String AUTO_CLEAR_TERMINAL_LOG_KEEP_DAYS = "autoClear_terminalLogKeepDays";
} }

View File

@@ -40,34 +40,34 @@ public class AppLogConfig {
/** /**
* 日志加载偏移行 * 日志加载偏移行
*/ */
private final ConfigRef<Integer> trackerOffset; private final ConfigRef<Integer> trackerLoadLines;
/** /**
* 日志加载间隔毫秒 * 日志加载间隔毫秒
*/ */
private final ConfigRef<Integer> trackerDelay; private final ConfigRef<Integer> trackerLoadInterval;
/** /**
* 是否拼接 ansi 执行状态日志 * 是否生成详细的执行日志
*/ */
private final ConfigRef<Boolean> execAppendAnsi; private final ConfigRef<Boolean> execDetailLog;
public AppLogConfig(ConfigStore configStore) { public AppLogConfig(ConfigStore configStore) {
this.trackerOffset = configStore.int32(ConfigKeys.LOG_TRACKER_OFFSET); this.trackerLoadLines = configStore.int32(ConfigKeys.LOG_TRACKER_LOAD_LINES);
this.trackerDelay = configStore.int32(ConfigKeys.LOG_TRACKER_DELAY); this.trackerLoadInterval = configStore.int32(ConfigKeys.LOG_TRACKER_LOAD_INTERVAL);
this.execAppendAnsi = configStore.bool(ConfigKeys.LOG_EXEC_APPEND_ANSI); this.execDetailLog = configStore.bool(ConfigKeys.LOG_EXEC_DETAIL_LOG);
} }
public Integer getTrackerOffset() { public Integer getTrackerLoadLines() {
return trackerOffset.value; return trackerLoadLines.value;
} }
public Integer getTrackerDelay() { public Integer getTrackerLoadInterval() {
return trackerDelay.value; return trackerLoadInterval.value;
} }
public Boolean getExecAppendAnsi() { public Boolean getExecDetailLog() {
return execAppendAnsi.value; return execDetailLog.value;
} }
} }

View File

@@ -78,9 +78,10 @@ export interface EncryptSetting {
* 日志设置 * 日志设置
*/ */
export interface LogSetting { export interface LogSetting {
log_trackerOffset: number; log_webScrollLines: number;
log_trackerDelay: number; log_trackerLoadLines: number;
log_execAppendAnsi: string; log_trackerLoadInterval: number;
log_execDetailLog: string;
} }
/** /**

View File

@@ -9,26 +9,46 @@
label-align="right" label-align="right"
:auto-label-width="true"> :auto-label-width="true">
<!-- 执行详细日志 --> <!-- 执行详细日志 -->
<a-form-item field="log_execAppendAnsi" <a-form-item field="log_execDetailLog"
label="执行详细日志" label="执行详细日志"
:rules="[{required: true, message: '请选择此项'}]" :rules="[{required: true, message: '请选择此项'}]"
hide-asterisk> hide-asterisk>
<a-switch v-model="setting.log_execAppendAnsi" <a-switch v-model="setting.log_execDetailLog"
type="round" type="round"
checked-value="true" checked-value="true"
unchecked-value="false" unchecked-value="false"
checked-text="详细输出" checked-text="详细输出"
unchecked-text="原始输出" /> unchecked-text="原始输出" />
<template #extra> <template #extra>
开启后在命令执行时会拼接详细的日志信息, 关闭后则只显示命令的标准输出 开启后在命令执行时会展示详细的日志信息(执行主机命令等), 关闭后则只显示命令的标准输出
</template>
</a-form-item>
<!-- 最大显示行数 -->
<a-form-item field="log_webScrollLines"
label="最大显示行数"
:rules="[{required: true, message: '请输入日志最大显示行数'}]"
hide-asterisk>
<a-input-number v-model="setting.log_webScrollLines"
class="input-wrapper"
:min="0"
:max="999999"
placeholder="请输入日志最大显示行数"
allow-clear
hide-button>
<template #suffix>
</template>
</a-input-number>
<template #extra>
前端日志组件最大显示的行数, 超出部分将会被覆盖 (数值越大内存占用越多)
</template> </template>
</a-form-item> </a-form-item>
<!-- 日志加载行数 --> <!-- 日志加载行数 -->
<a-form-item field="log_trackerOffset" <a-form-item field="log_trackerLoadLines"
label="日志加载行数" label="日志加载行数"
:rules="[{required: true, message: '请输入日志加载行数'}]" :rules="[{required: true, message: '请输入日志加载行数'}]"
hide-asterisk> hide-asterisk>
<a-input-number v-model="setting.log_trackerOffset" <a-input-number v-model="setting.log_trackerLoadLines"
class="input-wrapper" class="input-wrapper"
:min="0" :min="0"
:max="99999" :max="99999"
@@ -44,11 +64,11 @@
</template> </template>
</a-form-item> </a-form-item>
<!-- 日志监听间隔 --> <!-- 日志监听间隔 -->
<a-form-item field="log_trackerDelay" <a-form-item field="log_trackerLoadInterval"
label="日志监听间隔" label="日志监听间隔"
:rules="[{required: true, message: '请输入日志监听间隔'}]" :rules="[{required: true, message: '请输入日志监听间隔'}]"
hide-asterisk> hide-asterisk>
<a-input-number v-model="setting.log_trackerDelay" <a-input-number v-model="setting.log_trackerLoadInterval"
class="input-wrapper" class="input-wrapper"
:min="0" :min="0"
:max="99999" :max="99999"
@@ -123,8 +143,9 @@
const { data } = await getSystemSetting(SystemSettingTypes.LOG); const { data } = await getSystemSetting(SystemSettingTypes.LOG);
setting.value = { setting.value = {
...data, ...data,
log_trackerDelay: toAnonymousNumber(data.log_trackerDelay), log_webScrollLines: toAnonymousNumber(data.log_webScrollLines),
log_trackerOffset: toAnonymousNumber(data.log_trackerOffset), log_trackerLoadInterval: toAnonymousNumber(data.log_trackerLoadInterval),
log_trackerLoadLines: toAnonymousNumber(data.log_trackerLoadLines),
}; };
} catch (e) { } catch (e) {
} finally { } finally {