Skip to content

Commit 000aff1

Browse files
committed
fix: use correct xray core log type extraction
1 parent f87d8f1 commit 000aff1

File tree

1 file changed

+3
-39
lines changed

1 file changed

+3
-39
lines changed

dashboard/src/utils/logsUtils.ts

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,6 @@ export function parseLogs(logString: string): LogLine[] {
8383

8484
// Detect log type based on Xray core message content
8585
export const getLogType = (message: string): LogStyle => {
86-
const lowerMessage = message.toLowerCase()
87-
88-
// Xray core log format detection - check bracketed log levels first
8986
if (/\[error\]/i.test(message)) {
9087
return LOG_STYLES.error
9188
}
@@ -102,44 +99,11 @@ export const getLogType = (message: string): LogStyle => {
10299
return LOG_STYLES.debug
103100
}
104101

105-
// Fallback pattern detection for non-bracketed logs
106-
if (
107-
/(?:^|\s)(?:error|err):?\s/i.test(lowerMessage) ||
108-
/\b(?:exception|failed|failure)\b/i.test(lowerMessage) ||
109-
/(?:stack\s?trace):\s*$/i.test(lowerMessage) ||
110-
/^\s*at\s+[\w.]+\s*\(?.+:\d+:\d+\)?/.test(lowerMessage) ||
111-
/\b(?:uncaught|unhandled)\s+(?:exception|error)\b/i.test(lowerMessage) ||
112-
/Error:\s.*(?:in|at)\s+.*:\d+(?::\d+)?/.test(lowerMessage) ||
113-
/\b(?:errno|code):\s*(?:\d+|[A-Z_]+)\b/i.test(lowerMessage) ||
114-
/\b(?:crash|critical|fatal)\b/i.test(lowerMessage) ||
115-
/\b(?:fail(?:ed|ure)?|broken|dead)\b/i.test(lowerMessage)
116-
) {
117-
return LOG_STYLES.error
118-
}
119-
120-
if (
121-
/(?:^|\s)(?:warning|warn):?\s/i.test(lowerMessage) ||
122-
/\b(?:caution|attention|notice):\s/i.test(lowerMessage) ||
123-
/(?:deprecated|obsolete)\s+(?:since|in|as\s+of)/i.test(lowerMessage) ||
124-
/\b(?:deprecated|obsolete)\b/i.test(lowerMessage) ||
125-
/\b(?:unstable|experimental)\b/i.test(lowerMessage)
126-
) {
127-
return LOG_STYLES.warning
128-
}
129-
130-
if (/(?:^|\s)(?:debug|dbg):?\s/i.test(lowerMessage) || /\b(?:version|config|import|load|get|HTTP|PATCH|POST)\b:?/i.test(lowerMessage) || /\b(?:trace)\b/i.test(lowerMessage)) {
131-
return LOG_STYLES.debug
132-
}
133-
134-
// Default to info for connection logs and general messages
135-
if (
136-
/\b(?:status|state|current|progress)\b:?\s/i.test(lowerMessage) ||
137-
/\b(?:processing|executing|performing)\b/i.test(lowerMessage) ||
138-
/(?:connected|established|ready)\s+(?:to|for|on)/i.test(lowerMessage) ||
139-
/\b(?:started|starting|active)\b/i.test(lowerMessage)
140-
) {
102+
// Xray access logs: "from IP:port accepted tcp/udp:destination:port [info] email: user@example.com"
103+
if (/from\s+.+:\d+\s+accepted\s+(tcp|udp):.+:\d+\s+\[.+\]\s+email:\s+.+/i.test(message)) {
141104
return LOG_STYLES.info
142105
}
143106

107+
// Default to info
144108
return LOG_STYLES.info
145109
}

0 commit comments

Comments
 (0)