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;
}