diff options
| author | somebodywashere <68244480+somebodywashere@users.noreply.github.com> | 2024-01-01 18:07:56 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-01 18:07:56 +0300 |
| commit | ceee1e4277953b68aeded8af01cf2eddfee2fbd5 (patch) | |
| tree | 7ff9f21d8c300ffd45473500337cff4a45ab7b65 /web/job/clear_logs_job.go | |
| parent | b725ea7de5ed73a36a9cd2c23bb247ca6b587573 (diff) | |
Major changes to tgbot, also small changes for panel (#1463)
* Reduce outage time on Xray errors
* Improved logs clearing, added previous logs
File name change: 3xipl-access-persistent.log -> 3xipl-ap.log
All previous logs have .prev suffix
* Preparations for tgbot additions
* [tgbot] Improvements, Additions and Fixes
* Changed interaction with Expire Date for Clients
* Added more info and interactions with Online Clients
* Added a way to get Ban Logs (also added them to backup)
* Few fixes and optimizations in code
* Fixed RU translation
* [tgbot] More updates and fixes
* [tgbot] Quick Fix
* [tgbot] Quick Fix 2
* [tgbot] Big Updates
Added Notifications for Clients throught Tgbot (when Expire)
Added compability for Usernames both w/wo @
Added more buttons overall for admins
* [tgbot] Fixes
* [tbot] Fixes 2
* [tgbot] Removed usernames support for Notifications to work
* [tgbot] Fix
* [tgbot] Fix Notify
* [tgbot] small fixes
* [tgbot] replyMarkup only for last message on big messages
* [tgbot] Fixed last message is empty
* [tgbot] Fix messages split
Diffstat (limited to 'web/job/clear_logs_job.go')
| -rw-r--r-- | web/job/clear_logs_job.go | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/web/job/clear_logs_job.go b/web/job/clear_logs_job.go index 34f13eaa..5ceb5a75 100644 --- a/web/job/clear_logs_job.go +++ b/web/job/clear_logs_job.go @@ -15,10 +15,37 @@ func NewClearLogsJob() *ClearLogsJob { // Here Run is an interface method of the Job interface func (j *ClearLogsJob) Run() { 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++ { - 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) } } |
