mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-09-07 10:46:19 +00:00
Improved logs clearing, added previous logs
File name change: 3xipl-access-persistent.log -> 3xipl-ap.log All previous logs have .prev suffix
This commit is contained in:
parent
4939474e89
commit
bd15d8f7ee
3 changed files with 45 additions and 3 deletions
|
@ -22,8 +22,11 @@ var job *CheckClientIpJob
|
||||||
var disAllowedIps []string
|
var disAllowedIps []string
|
||||||
var ipFiles = []string{
|
var ipFiles = []string{
|
||||||
xray.GetIPLimitLogPath(),
|
xray.GetIPLimitLogPath(),
|
||||||
|
xray.GetIPLimitPrevLogPath(),
|
||||||
xray.GetIPLimitBannedLogPath(),
|
xray.GetIPLimitBannedLogPath(),
|
||||||
|
xray.GetIPLimitBannedPrevLogPath(),
|
||||||
xray.GetAccessPersistentLogPath(),
|
xray.GetAccessPersistentLogPath(),
|
||||||
|
xray.GetAccessPersistentPrevLogPath(),
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCheckClientIpJob() *CheckClientIpJob {
|
func NewCheckClientIpJob() *CheckClientIpJob {
|
||||||
|
|
|
@ -15,10 +15,37 @@ func NewClearLogsJob() *ClearLogsJob {
|
||||||
// Here Run is an interface method of the Job interface
|
// Here Run is an interface method of the Job interface
|
||||||
func (j *ClearLogsJob) Run() {
|
func (j *ClearLogsJob) Run() {
|
||||||
logFiles := []string{xray.GetIPLimitLogPath(), xray.GetIPLimitBannedLogPath(), xray.GetAccessPersistentLogPath()}
|
logFiles := []string{xray.GetIPLimitLogPath(), xray.GetIPLimitBannedLogPath(), xray.GetAccessPersistentLogPath()}
|
||||||
|
logFilesPrev := []string{xray.GetIPLimitPrevLogPath(), xray.GetIPLimitBannedPrevLogPath(), xray.GetAccessPersistentPrevLogPath()}
|
||||||
|
|
||||||
// clear log files
|
// clear old previous logs
|
||||||
|
for i := 0; i < len(logFilesPrev); i++ {
|
||||||
|
if err := os.Truncate(logFilesPrev[i], 0); err != nil {
|
||||||
|
logger.Warning("clear logs job err:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// clear log files and copy to previous logs
|
||||||
for i := 0; i < len(logFiles); i++ {
|
for i := 0; i < len(logFiles); i++ {
|
||||||
if err := os.Truncate(logFiles[i], 0); err != nil {
|
|
||||||
|
// copy to previous logs
|
||||||
|
logFilePrev, err := os.OpenFile(logFilesPrev[i], os.O_CREATE|os.O_APPEND|os.O_RDWR, 0644)
|
||||||
|
if err != nil {
|
||||||
|
logger.Warning("clear logs job err:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
logFile, err := os.ReadFile(logFiles[i])
|
||||||
|
if err != nil {
|
||||||
|
logger.Warning("clear logs job err:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = logFilePrev.Write(logFile)
|
||||||
|
if err != nil {
|
||||||
|
logger.Warning("clear logs job err:", err)
|
||||||
|
}
|
||||||
|
defer logFilePrev.Close()
|
||||||
|
|
||||||
|
err = os.Truncate(logFiles[i], 0)
|
||||||
|
if err != nil {
|
||||||
logger.Warning("clear logs job err:", err)
|
logger.Warning("clear logs job err:", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,12 +41,24 @@ func GetIPLimitLogPath() string {
|
||||||
return config.GetLogFolder() + "/3xipl.log"
|
return config.GetLogFolder() + "/3xipl.log"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetIPLimitPrevLogPath() string {
|
||||||
|
return config.GetLogFolder() + "/3xipl.prev.log"
|
||||||
|
}
|
||||||
|
|
||||||
func GetIPLimitBannedLogPath() string {
|
func GetIPLimitBannedLogPath() string {
|
||||||
return config.GetLogFolder() + "/3xipl-banned.log"
|
return config.GetLogFolder() + "/3xipl-banned.log"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetIPLimitBannedPrevLogPath() string {
|
||||||
|
return config.GetLogFolder() + "/3xipl-banned.prev.log"
|
||||||
|
}
|
||||||
|
|
||||||
func GetAccessPersistentLogPath() string {
|
func GetAccessPersistentLogPath() string {
|
||||||
return config.GetLogFolder() + "/3xipl-access-persistent.log"
|
return config.GetLogFolder() + "/3xipl-ap.log"
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAccessPersistentPrevLogPath() string {
|
||||||
|
return config.GetLogFolder() + "/3xipl-ap.prev.log"
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAccessLogPath() string {
|
func GetAccessLogPath() string {
|
||||||
|
|
Loading…
Reference in a new issue