When binding a parameter that includes the text {} the BasicBinder String.format call will include the value as part of the messagePattern passed to the logger. When using log4j {} is interpreted as a variable to be replaced by a argument, and since no arguments are supplied the entire message is considered to be an argument. As a result, when a log message should be: binding parameter [2] as [VARCHAR] - [{}] it ends up getting logged as: binding parameter [2] as [VARCHAR] - [binding parameter [2] as [VARCHAR] - [{}]] |