<div dir="ltr"><div dir="ltr">>Those who need that functionality could always add a JDBCAppender of their own separately.</div><div dir="ltr"><br></div><div>There's a case when users can override JDBCAppender, and override its flushBuffer method.</div><div><br></div><div>So removing the class would break "drop-in replacement" </div><div>I would rather suggest doing the following:</div><div>1) Throw an exception from JDBCAppender#flushBuffer unless there's reload4.appender.jdbc.allow_insecure_sql_replace=true</div><div>That would make the thing secure, and the people would have a migration plan</div><div><br></div><div>2) Having a secured JDBCApender makes sense a well, even if the users would need to adjust the configs.</div><div>It is used a lot even in public GitHub repositories: <a href="https://github.com/search?l=Java+Properties&q=org.apache.log4j.jdbc.JDBCAppender&type=Code">https://github.com/search?l=Java+Properties&q=org.apache.log4j.jdbc.JDBCAppender&type=Code</a></div><div><br></div><div>One of the ideas could be treating '%m' as ? (bind placeholder).</div><div>That would automatically cover cases like</div><div><a href="https://github.com/Gitlishitong/bams/blob/806385d0f3d9dd1074f3436c2c70ab1e3555ff40/src/main/resources/log/database.properties#L15">https://github.com/Gitlishitong/bams/blob/806385d0f3d9dd1074f3436c2c70ab1e3555ff40/src/main/resources/log/database.properties#L15</a><br></div><div dir="ltr"><br></div><div>I am not sure what to do with more complicated cases like INSERT INTO A1 (TITLE3) VALUES ( ' %d  -  %c %-5p %c %x  -  %m%n ' )</div><div><a href="https://github.com/0532/print/blob/59f8f7450e2de591e74c0c347fd00fd7dc45357f/src/log4j.properties#L38">https://github.com/0532/print/blob/59f8f7450e2de591e74c0c347fd00fd7dc45357f/src/log4j.properties#L38</a><br></div><div dir="ltr"><br></div><div>We could probably assume people would use ' ....format ...'  approach, and we could auto-convert those patterns to a bind placeholders, and we could fail if the conversion fails.</div><div>That would make the thing secure by default, and it would support the users.</div><div><br></div><div dir="ltr"><div><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div>Vladimir</div><div><br></div></div></div></div></div></div>