noveogroup / android-logger

Useful logger for Android based on standard android.util.Log class. Simple lightweight (< 50 Kb) implementation of SLF4J API. Easy but powerful configuration via properties file and some additional helpful logging methods. Easy analogue of popular log4j library.

Home Page:https://noveogroup.github.io/android-logger

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot log content with "%" symbol.

mattcreaser opened this issue · comments

This is using the 1.3.2 release.

Logging a message through SLF4J with a % symbol, either in the format string or argument string, results in an exception.

log.trace("This will throw {}", "Happens 100%!");

Partial stack trace:

     Caused by: java.util.MissingFormatArgumentException: Format specifier: ;
            at java.util.Formatter.getArgument(Formatter.java:1111)
            at java.util.Formatter.doFormat(Formatter.java:1076)
            at java.util.Formatter.format(Formatter.java:1042)
            at java.util.Formatter.format(Formatter.java:1011)
            at java.lang.String.format(String.java:1999)
            at java.lang.String.format(String.java:1973)
            at com.noveogroup.android.log.PatternHandler.print(PatternHandler.java:298)
            at com.noveogroup.android.log.SimpleLogger.print(SimpleLogger.java:56)
            at org.slf4j.impl.AndroidLoggerAdapter.log(AndroidLoggerAdapter.java:63)
            at org.slf4j.impl.AndroidLoggerAdapter.trace(AndroidLoggerAdapter.java:91)

Fixed in 1.3.5

Thank you!

I am using 1.3.5 and trying to print a string that is URL encoded and contains %3A and I still get that exception

E/AndroidRuntime(12300): java.util.MissingFormatArgumentException: Format specifier: 3A
E/AndroidRuntime(12300): at java.util.Formatter.getArgument(Formatter.java:1111)
E/AndroidRuntime(12300): at java.util.Formatter.doFormat(Formatter.java:1076)
E/AndroidRuntime(12300): at java.util.Formatter.format(Formatter.java:1042)
E/AndroidRuntime(12300): at java.util.Formatter.format(Formatter.java:1011)
E/AndroidRuntime(12300): at java.lang.String.format(String.java:1803)
E/AndroidRuntime(12300): at java.lang.String.format(String.java:1777)
E/AndroidRuntime(12300): at com.noveogroup.android.log.PatternHandler.print(PatternHandler.java:355)
E/AndroidRuntime(12300): at com.noveogroup.android.log.SimpleLogger.print(SimpleLogger.java:63)
E/AndroidRuntime(12300): at com.noveogroup.android.log.AbstractLogger.d(AbstractLogger.java:147)
E/AndroidRuntime(12300): at

Could you provide a code example?

fixed in 1.3.6