Add DEBUG or TRACE level to java.sql.PreparedStatement in log4j.properties
log4j.logger.java.sql.PreparedStatement=DEBUG
or
log4j.logger.java.sql.PreparedStatement=TRACE
If you want to get a complete JDBC operations logging add DEBUG level to java.sql
log4j.logger.java.sql=DEBUG
or if you want a concrete logging for individual JDBC class add
log4j.logger.java.sql.theclass=DEBUG
an example
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
edit: My mistake, I forgot SQLServer JDBC driver does not use log4j
You cant configure logging via java.util.logging.LogManager with a properties file
handlers= java.util.logging.FileHandler
# Default global logging level.
.level= ALL
# default file output
java.util.logging.FileHandler.pattern = /tmp/sql.log
java.util.logging.FileHandler.limit = 5000000
java.util.logging.FileHandler.count = 20
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level = ALL
# Facility specific properties.
com.microsoft.sqlserver.jdbc.level=ALL
com.microsoft.sqlserver.jdbc.Statement.level=ALL
com.microsoft.sqlserver.jdbc.SQLServerStatement.level=ALL
And get it at runtime
LogManager.getLogManager().readConfiguration(new FileInputStream("c:/tmp/sql.properties"));
More info
Tracing Driver Operation