Updating meta char replacement to ensure all regexp characters are escaped properly

git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/companions/receivers/trunk@979552 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
index 3b086b9..78f71c1 100644
--- a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
+++ b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
@@ -813,14 +813,24 @@
    * @return string
    */
   private String replaceMetaChars(String input) {
+    //escape backslash first since that character is used to escape the remaining meta chars
+    input = globalReplace("\\", "\\\\", input);
+
+    //don't escape star - it's used as the wildcard
+    input = globalReplace("]", "\\]", input);
+    input = globalReplace("[", "\\[", input);
+    input = globalReplace("^", "\\^", input);
+    input = globalReplace("$", "\\$", input);
+    input = globalReplace(".", "\\.", input);
+    input = globalReplace("|", "\\|", input);
+    input = globalReplace("?", "\\?", input);
+    input = globalReplace("+", "\\+", input);
     input = globalReplace("(", "\\(", input);
     input = globalReplace(")", "\\)", input);
-    input = globalReplace("[", "\\[", input);
-    input = globalReplace("]", "\\]", input);
+    input = globalReplace("-", "\\-", input);
     input = globalReplace("{", "\\{", input);
     input = globalReplace("}", "\\}", input);
     input = globalReplace("#", "\\#", input);
-    input = globalReplace("/", "\\/", input);
     return input;
   }