From 422c391f9637db46c42035253cb41b51b6228a7d Mon Sep 17 00:00:00 2001 From: mhsanaei Date: Mon, 10 Mar 2025 14:12:30 +0100 Subject: [PATCH] Xray log: show failed on error log level --- xray/log_writer.go | 35 +++++++++++++++++++++-------------- 1 file 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 } }