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..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,6 +21,8 @@
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.util.MissingFormatArgumentException;
+
/**
* A Timber tree that posts
* log messages to Loggly
@@ -155,9 +157,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 +188,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));
+ }
+
}
/**