mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-19 13:32:24 +00:00
[logs] new bug-free log_writer
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
This commit is contained in:
parent
d6e05d4a1a
commit
9f6957ef3f
2 changed files with 7 additions and 14 deletions
|
@ -1557,7 +1557,7 @@ class Inbound extends XrayCommonClass {
|
||||||
const orderChars = remarkModel.slice(1);
|
const orderChars = remarkModel.slice(1);
|
||||||
let orders = {
|
let orders = {
|
||||||
'i': remark,
|
'i': remark,
|
||||||
'e': client ? client.email : '',
|
'e': email,
|
||||||
'o': '',
|
'o': '',
|
||||||
};
|
};
|
||||||
if(ObjectUtil.isArrEmpty(this.stream.externalProxy)){
|
if(ObjectUtil.isArrEmpty(this.stream.externalProxy)){
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package xray
|
package xray
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"x-ui/logger"
|
"x-ui/logger"
|
||||||
)
|
)
|
||||||
|
@ -14,26 +15,18 @@ type LogWriter struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (lw *LogWriter) Write(m []byte) (n int, err error) {
|
func (lw *LogWriter) Write(m []byte) (n int, err error) {
|
||||||
|
regex := regexp.MustCompile(`^(\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}) \[([^\]]+)\] (.+)$`)
|
||||||
// Convert the data to a string
|
// Convert the data to a string
|
||||||
message := strings.TrimSpace(string(m))
|
message := strings.TrimSpace(string(m))
|
||||||
messages := strings.Split(message, "\n")
|
messages := strings.Split(message, "\n")
|
||||||
lw.lastLine = messages[len(messages)-1]
|
lw.lastLine = messages[len(messages)-1]
|
||||||
|
|
||||||
for _, msg := range messages {
|
for _, msg := range messages {
|
||||||
messageBody := msg
|
matches := regex.FindStringSubmatch(msg)
|
||||||
|
|
||||||
// Remove timestamp
|
if len(matches) > 3 {
|
||||||
splittedMsg := strings.SplitN(msg, " ", 3)
|
level := matches[2]
|
||||||
if len(splittedMsg) > 2 {
|
msgBody := matches[3]
|
||||||
messageBody = strings.TrimSpace(strings.SplitN(msg, " ", 3)[2])
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find level in []
|
|
||||||
startIndex := strings.Index(messageBody, "[")
|
|
||||||
endIndex := strings.Index(messageBody, "]")
|
|
||||||
if startIndex != -1 && endIndex != -1 && startIndex < endIndex {
|
|
||||||
level := strings.TrimSpace(messageBody[startIndex+1 : endIndex])
|
|
||||||
msgBody := "XRAY: " + strings.TrimSpace(messageBody[endIndex+1:])
|
|
||||||
|
|
||||||
// Map the level to the appropriate logger function
|
// Map the level to the appropriate logger function
|
||||||
switch level {
|
switch level {
|
||||||
|
|
Loading…
Reference in a new issue