log4j JDBCAppender 消息中有单引号 BUG
来源:互联网 发布:观察者手机间谍软件 编辑:程序博客网 时间:2024/05/22 05:49
用log4j的JDBCAppender 输出到数据库如果 消息中有单引号,就会报SQLException。
解决办法就是重写JDBCAppender
1.新建类MyLoggingEvent
package com.ikuboo.custom;import org.apache.log4j.Category;import org.apache.log4j.Priority;import org.apache.log4j.spi.LoggingEvent;/** * @ClassName:MyLoggingEvent.java * @Description:重写,替换message 单引号为 转义符 * @author:Yuan * @version:V1.0 * @Date:2016年6月7日 上午10:51:38 */public class MyLoggingEvent extends LoggingEvent{private static final long serialVersionUID = -1405129465403337629L;public MyLoggingEvent(String fqnOfCategoryClass, Category logger, Priority level, Object message, Throwable throwable){super(fqnOfCategoryClass, logger, level, message, throwable);}@Overridepublic String getThreadName(){String thrdName = super.getThreadName();if (thrdName.indexOf("'") != -1){thrdName = thrdName.replaceAll("'", "''");}return thrdName;}@Overridepublic String getRenderedMessage(){String msg = super.getRenderedMessage();if (msg.indexOf("'") != -1){msg = msg.replaceAll("'", "''");}return msg;}}
2.新建类MyJDBCAppender
package com.ikuboo.custom;import org.apache.log4j.Category;import org.apache.log4j.Priority;import org.apache.log4j.spi.LoggingEvent;/** * @ClassName:MyLoggingEvent.java * @Description:重写,替换message 单引号为 转义符 * @author:Yuan * @version:V1.0 * @Date:2016年6月7日 上午10:51:38 */public class MyLoggingEvent extends LoggingEvent{private static final long serialVersionUID = -1405129465403337629L;public MyLoggingEvent(String fqnOfCategoryClass, Category logger, Priority level, Object message, Throwable throwable){super(fqnOfCategoryClass, logger, level, message, throwable);}@Overridepublic String getThreadName(){String thrdName = super.getThreadName();if (thrdName.indexOf("'") != -1){thrdName = thrdName.replaceAll("'", "''");}return thrdName;}@Overridepublic String getRenderedMessage(){String msg = super.getRenderedMessage();if (msg.indexOf("'") != -1){msg = msg.replaceAll("'", "''");}return msg;}}
3.修改log4j.properties
log4j.appender.db=com.ikuboo.custom.MyJDBCAppender
0 0
- log4j JDBCAppender 消息中有单引号 BUG
- log4j重写JDBCAppender 解决单引号问题
- 利用log4j的JDBCAppender把日志写入数据库中
- 利用log4j的JDBCAppender把日志写入数据库中
- 关于在Log4j中使用JDBCAppender时出现死循环的问题
- 关于在Log4j中使用JDBCAppender时出现死循环的问题
- Log4j之DailyRollingFileAppender,SMTPAppender,JDBCAppender篇
- 在ORACLE中,单引号有两个作用
- Log4J写入到SQL SERVER数据库中, 单引号错误解决办法
- RichEdit控件在处理EM_REPLACESEL消息中有bug?附一种解决办法
- RichEdit控件在处理EM_REPLACESEL消息中有bug?附一种解决办法
- 【学习笔记】java中单引号和双引号有什么区别?
- mysql 与oralce中插入有单引号的字符串
- PHP中单引号与双引号有什么区别
- XML内容中有单引号和双引号的解决
- 单引号中有双引号,双引号还需要引号怎么办
- java中单引号和双引号有什么区别?
- SQL语句中条件里需要有单引号问题
- 《大数据时代》读书笔记
- openStream打开网络地址获取文件流
- Tomcat9配置HTTP2
- [快速学会Swift第三方库]AlamofireObjectMapper
- 遍历list<T>
- log4j JDBCAppender 消息中有单引号 BUG
- java中正则表达式的使用(1)
- 如何下载spring框架开发包
- struts2在struts.xml中为返回的页面配参数时出现Invalid result location value/parameter
- union和union all的使用
- 自动获取客户登陆信息(Python)
- jquery的代码封装
- 一种通用的SingleNumber问题解法
- 搭建mongodb集群(副本集+分片)