From 26087727945152e5b6afa647732edbf86a30e1c5 Mon Sep 17 00:00:00 2001 From: Josef Lange Date: Sat, 7 May 2016 20:09:30 -0500 Subject: [PATCH 1/3] Add fallback behavior for bad string formatting --- .../tony19/timber/loggly/LogglyTree.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java b/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java index 0cfae35..459a12a 100644 --- a/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java +++ b/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java @@ -155,9 +155,15 @@ public void w(Throwable t, String message, Object... args) { * @return JSON string */ private String toJson(Level level, String message, Object... args) { - return String.format("{\"level\": \"%1$s\", \"message\": \"%2$s\"}", - level, - String.format(message, args).replace("\"", "\\\"")); + try { + return String.format("{\"level\": \"%1$s\", \"message\": \"%2$s\"}", + level, + String.format(message, args).replace("\"", "\\\"")); + } catch(MissingFormatArgumentException exception) { + return String.format("{\"level\": \"%1$s\", \"message\": \"%2$s\"}", + level, + message.replace("\"", "\\\"")); + } } /** @@ -180,10 +186,18 @@ private String formatThrowable(Throwable t) { * @return JSON string */ private String toJson(Level level, String message, Throwable t, Object... args) { - return String.format("{\"level\": \"%1$s\", \"message\": \"%2$s\", \"exception\": \"%3$s\"}", - level, - String.format(message, args).replace("\"", "\\\""), - formatThrowable(t)); + try { + return String.format("{\"level\": \"%1$s\", \"message\": \"%2$s\", \"exception\": \"%3$s\"}", + level, + String.format(message, args).replace("\"", "\\\""), + formatThrowable(t)); + } catch(MissingFormatArgumentException exception) { + return String.format("{\"level\": \"%1$s\", \"message\": \"%2$s\", \"exception\": \"%3$s\"}", + level, + message.replace("\"", "\\\""), + formatThrowable(t)); + } + } /** From d970667f8fa77d3f8a1bdc60c35156fec39e7d7e Mon Sep 17 00:00:00 2001 From: Josef Lange Date: Sat, 7 May 2016 20:13:19 -0500 Subject: [PATCH 2/3] Gotta import that exception if you want to catch it, son. --- src/main/java/com/github/tony19/timber/loggly/LogglyTree.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java b/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java index 459a12a..ed94796 100644 --- a/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java +++ b/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java @@ -21,6 +21,8 @@ import java.io.PrintWriter; import java.io.StringWriter; +import java.util.MissingFormatArgumentException + /** * A Timber tree that posts * log messages to Loggly From 89ce93a55d992588018cfa077d15c6e7f6730d54 Mon Sep 17 00:00:00 2001 From: Josef Lange Date: Sat, 7 May 2016 20:14:42 -0500 Subject: [PATCH 3/3] Because semi-colons are important. Don't blame me, I edited this with VIM and wasn't paying attention. --- src/main/java/com/github/tony19/timber/loggly/LogglyTree.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java b/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java index ed94796..7571d6a 100644 --- a/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java +++ b/src/main/java/com/github/tony19/timber/loggly/LogglyTree.java @@ -21,7 +21,7 @@ import java.io.PrintWriter; import java.io.StringWriter; -import java.util.MissingFormatArgumentException +import java.util.MissingFormatArgumentException; /** * A Timber tree that posts