🔨 添加日志系统设置.
This commit is contained in:
@@ -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";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user