diff options
| author | mhsanaei <ho3ein.sanaei@gmail.com> | 2025-03-10 16:12:30 +0300 |
|---|---|---|
| committer | mhsanaei <ho3ein.sanaei@gmail.com> | 2025-03-10 16:31:06 +0300 |
| commit | 422c391f9637db46c42035253cb41b51b6228a7d (patch) | |
| tree | c952db4cc74041afe247f09dbb4e9d19648c5e12 | |
| parent | f7f95ffbae6893e8eac2bbb8b804db579d460198 (diff) | |
Xray log: show failed on error log level
| -rw-r--r-- | xray/log_writer.go | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/xray/log_writer.go b/xray/log_writer.go index 4d27c720..8d078e13 100644 --- a/xray/log_writer.go +++ b/xray/log_writer.go @@ -33,31 +33,38 @@ 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}\.\d{6}) \[([^\]]+)\] (.+)$`) - messages := strings.Split(message, "\n") + messages := strings.SplitSeq(message, "\n") - for _, msg := range messages { + for msg := range messages { matches := regex.FindStringSubmatch(msg) if len(matches) > 3 { level := matches[2] msgBody := matches[3] - // Map the level to the appropriate logger function - switch level { - case "Debug": - logger.Debug("XRAY: " + msgBody) - case "Info": - logger.Info("XRAY: " + msgBody) - case "Warning": - logger.Warning("XRAY: " + msgBody) - case "Error": + if strings.Contains(strings.ToLower(msgBody), "failed") { logger.Error("XRAY: " + msgBody) - default: - logger.Debug("XRAY: " + msg) + } else { + switch level { + case "Debug": + logger.Debug("XRAY: " + msgBody) + case "Info": + logger.Info("XRAY: " + msgBody) + case "Warning": + logger.Warning("XRAY: " + msgBody) + case "Error": + logger.Error("XRAY: " + msgBody) + default: + logger.Debug("XRAY: " + msg) + } } lw.lastLine = "" } else if msg != "" { - logger.Debug("XRAY: " + msg) + if strings.Contains(strings.ToLower(msg), "failed") { + logger.Error("XRAY: " + msg) + } else { + logger.Debug("XRAY: " + msg) + } lw.lastLine = msg } } |
