From 830908b6232bf706535af7773c526ad0c76e7b70 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Fri, 28 Jun 2019 09:24:34 +0200 Subject: [PATCH] OO-3609: fix the feedback process for errors after changes on patterns --- .../core/dispatcher/ErrorFeedbackMailer.java | 7 +-- .../exception/ExceptionWindowController.java | 4 +- .../org/olat/core/logging/LogFileParser.java | 47 +++++++------------ src/main/resources/log4j2.xml | 4 ++ 4 files changed, 23 insertions(+), 39 deletions(-) diff --git a/src/main/java/org/olat/core/dispatcher/ErrorFeedbackMailer.java b/src/main/java/org/olat/core/dispatcher/ErrorFeedbackMailer.java index deea3f6f0f5..ffe4e66c5d4 100644 --- a/src/main/java/org/olat/core/dispatcher/ErrorFeedbackMailer.java +++ b/src/main/java/org/olat/core/dispatcher/ErrorFeedbackMailer.java @@ -74,7 +74,7 @@ public class ErrorFeedbackMailer implements Dispatcher { } /** - * send email to olat support with user submitted error informaition + * send email to support with user submitted error information * * @param request */ @@ -105,7 +105,6 @@ public class ErrorFeedbackMailer implements Dispatcher { } } catch (Exception e) { handleException(request, e); - return; } } @@ -116,10 +115,6 @@ public class ErrorFeedbackMailer implements Dispatcher { + username + " with content: " + feedback, e); } - /** - * @see org.olat.core.dispatcher.Dispatcher#execute(javax.servlet.http.HttpServletRequest, - * javax.servlet.http.HttpServletResponse, java.lang.String) - */ @Override public void execute(HttpServletRequest request, HttpServletResponse response) { sendMail(request); diff --git a/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java b/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java index 7c77fdb74a1..d21fa61d51b 100644 --- a/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java +++ b/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java @@ -194,8 +194,8 @@ public class ExceptionWindowController extends DefaultChiefController { msg.contextPut("username", curIdent == null? "n/a" : curIdent.getKey()); msg.contextPut("allowBackButton", Boolean.valueOf(allowBackButton)); msg.contextPut("detailedmessage", detailedmessage); - // Cluster NodeId + E-Nr - msg.contextPut("errnum", Settings.getNodeInfo() + "-E"+ refNum); + // Cluster request reference number + msg.contextPut("errnum", "I" + refNum + "-J"); msg.contextPut("supportaddress", WebappHelper.getMailConfig("mailError")); msg.contextPut("time", formatter.formatDateAndTime(new Date())); diff --git a/src/main/java/org/olat/core/logging/LogFileParser.java b/src/main/java/org/olat/core/logging/LogFileParser.java index 23559ca27ef..3b09a0023ea 100644 --- a/src/main/java/org/olat/core/logging/LogFileParser.java +++ b/src/main/java/org/olat/core/logging/LogFileParser.java @@ -146,20 +146,9 @@ public class LogFileParser { * @param s * @return errormsg */ - private static String extractError(String s[]) { - StringBuilder sb = new StringBuilder(); - - if (s.length == 6) { - // before refactoring of logging.Tracing - sb.append("Date: " + Formatter.truncate(s[0].trim(), 20) + "\n"); - sb.append("Error#: " + s[1].trim() + "\n"); - sb.append("Identity: " + s[3].trim() + "\n"); - sb.append("Category/Class: " + s[2].trim() + "\n"); - sb.append("Log msg: " + s[4].trim() + "\n"); - sb.append("Cause: " - + s[5].trim().replaceAll(" at ", "\nat ").replaceAll(">>>", "\n>>>") + "\n"); - } else if (s.length == 9) { - // the new Tracing + private static String extractError(String[] s) { + StringBuilder sb = new StringBuilder(2048); + if (s.length == 8) { sb.append("Date: " + Formatter.truncate(s[0].trim(), 20) + "\n"); sb.append("Error#: " + s[1].trim() + "\n"); sb.append("Identity: " + s[3].trim() + "\n"); @@ -167,11 +156,11 @@ public class LogFileParser { sb.append("Remote IP: " + s[4].trim() + "\n"); sb.append("Referer: " + s[5].trim() + "\n"); sb.append("User-Agent: " + s[6].trim() + "\n"); - sb.append("Log msg: " + s[7].trim() + "\n"); - sb.append("Cause: " - + s[8].trim().replaceAll(" at ", "\nat ").replaceAll(">>>", "\n\n")); + sb.append("Exception: " + s[7].trim().replaceAll(" at ", "\nat ").replaceAll(">>>", "\n\n")); } else { - throw new AssertException("Unknown Logfile format"); + for(String st:s) { + sb.append("Raw msg: " + st + "\n"); + } } return sb.toString(); } @@ -208,10 +197,10 @@ public class LogFileParser { String line; String line2; String memoryline = "empty"; - String em[] = new String[10]; - Collection<String> errormsg = new ArrayList<String>(); + String[] em = new String[10]; + Collection<String> errormsg = new ArrayList<>(); - SimpleDateFormat sdb = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdb = new SimpleDateFormat("dd MM yyyy"); String logfilepath; if(date == null) { @@ -235,8 +224,7 @@ public class LogFileParser { return errormsg; } - try { - BufferedReader br = new BufferedReader(new FileReader(logFile)); + try(BufferedReader br = new BufferedReader(new FileReader(logFile))) { while ((line = br.readLine()) != null) { if (counter == 0) { errormsg.add(line); @@ -247,7 +235,7 @@ public class LogFileParser { } else if ( line.matches(matchError) || line.matches(matchWarn) ) { line2 = line.replaceAll("[/^]", "/"); em = line2.split("/%/"); - if (errorNumber.equals(em[1].trim())) { + if (em[1].trim().startsWith(errorNumber)) { founderror++; if (asHTML) { line2 = extractErrorAsHTML(em); @@ -262,14 +250,11 @@ public class LogFileParser { } memoryline = line; } - br.close(); - if (founderror > 0) { - if (counter < linecount) { - while (counter > 0) { - errormsg.add("empty"); - counter--; - } + if (founderror > 0 && counter < linecount) { + while (counter > 0) { + errormsg.add("empty"); + counter--; } } diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index c01351547ea..91691c74891 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -8,6 +8,10 @@ <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %marker %c{1} ^%%^ N${sys:nodeId}-R%X{ref}-M%sn ^%%^ %logger{36} ^%%^ %X{identityKey} ^%%^ %X{ip} ^%%^ %X{referer} ^%%^ %X{userAgent} ^%%^ %msg%ex{full,separator( )}%n" /> --> + <!-- This pattern is used on OpenOLAT cloud + <PatternLayout + pattern="%d{dd MMM yyyy HH:mm:ss.SSS} [%t] %-5level %marker %c{1} ^%%^ I%X{ref}-J%sn ^%%^ %logger{36} ^%%^ %X{identityKey} ^%%^ %X{ip} ^%%^ %X{referer} ^%%^ %X{userAgent} ^%%^ %msg%ex{full,separator( )}%n" /> + --> </Console> </Appenders> <Loggers> -- GitLab