log4j 把日志信息存入数据库问题

greatmind829 2011-03-07 03:10:16
log4j.properties 配置



log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.JDBC=com.aps.comm.initDatabase.Dom4JdbcAppe
log4j.appender.JDBC.driver=com.mysql.jdbc.Driver
log4j.appender.JDBC.URL=jdbc:mysql://localhost:3307/aps
log4j.appender.JDBC.user=root
log4j.appender.JDBC.password=root
log4j.appender.JDBC.sql=INSERT INTO errorlog (userId,message,messageDate) VALUES ('0','%m','%d{yyyy-MM-dd HH\:mm\:ss}')
log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout


tomcat 一启动就报
log4j:ERROR Failed to excute sql
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'message' at row 1
这样的错误,经确认是'%m'的的错误,把'%m'随便改成什么东西就行了。
这是什么原因,请各位帮一下忙,谢谢了。
...全文
187 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
追风★少年 2011-03-08
  • 打赏
  • 举报
回复
你的字段设置的太短了
ilrxx 2011-03-07
  • 打赏
  • 举报
回复
为什么要存到数据库?
G_beginner 2011-03-07
  • 打赏
  • 举报
回复
是不是可以设成text
ginni215 2011-03-07
  • 打赏
  • 举报
回复
'%m'对应的内容就是错误日志的详细信息,这个信息的内容一般都非常的大,如果你设置的字段message比较小的话,就会插入异常了,设置大点就可以了~
liuchao1989 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luman2002 的回复:]
message 字段设100 太少了
所以当Log信息超过100时会报错

我觉得应该设置大点 1024 或2048
[/Quote]+1 确实,我们公司的系统经常出现Data truncation 异常,都是列的长度设置小了,维护了很多这样的bug。
luman2002 2011-03-07
  • 打赏
  • 举报
回复
message 字段设100 太少了
所以当Log信息超过100时会报错

我觉得应该设置大点 1024 或2048
magong 2011-03-07
  • 打赏
  • 举报
回复
varchar 100够长么?
greatmind829 2011-03-07
  • 打赏
  • 举报
回复
类型 字段 长度
int userId 20
varhcar message 100
datetme messageDate
是不是log4j的包有问题。
iambic 2011-03-07
  • 打赏
  • 举报
回复
错误信息太长,存不到数据库里。贴errorlog的定义看看。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧