Spring MVC 项目中配置log4j 出现错误log4j:ERROR Failed to excute sql com.mysql.jdbc.exceptions.jdbc4.MySQLSynt

来源:互联网 发布:周易古代注本知乎 编辑:程序博客网 时间:2024/06/05 03:56

错误信息如下:

2016-09-08 17:11:45 [com.mchange.v2.c3p0.C3P0Registry]-[INFO] Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]2016-09-08 17:11:46 [org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor]-[INFO] Initializing ExecutorService  'taskExecutor'log4j:ERROR Failed to excute sqlcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'taskExecutor'','org.springframework.scheduling.concurrent.ThreadPoolTaskExecut' at line 1at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)at com.mysql.jdbc.Util.getInstance(Util.java:381)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1605)at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524)at org.apache.log4j.jdbc.JDBCAppender.execute(JDBCAppender.java:178)at org.apache.log4j.jdbc.JDBCAppender.flushBuffer(JDBCAppender.java:250)at org.apache.log4j.jdbc.JDBCAppender.append(JDBCAppender.java:146)at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)at org.apache.log4j.Category.callAppenders(Category.java:203)at org.apache.log4j.Category.forcedLog(Category.java:388)at org.apache.log4j.Category.log(Category.java:853)at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:176)at org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.initialize(ExecutorConfigurationSupport.java:165)at org.springframework.scheduling.concurrent.ExecutorConfigurationSupport.afterPropertiesSet(ExecutorConfigurationSupport.java:157)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:585)at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1794)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)

以下是log4j的配置文件log4j.properties的内容:

log4j.rootCategory=INFO,FileLog, Console,databaselog4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n# 日志文件(logFile)log4j.appender.FileLog=org.apache.log4j.DailyRollingFileAppender log4j.appender.FileLog = org.apache.log4j.RollingFileAppenderlog4j.appender.FileLog.File=${catalina.base}/logs/log.loglog4j.appender.FileLog.MaxFileSize    = 3MBlog4j.appender.FileLog.MaxBackupIndex = 14log4j.appender.FileLog.layout = org.apache.log4j.PatternLayoutlog4j.appender.FileLog.layout.ConversionPattern=%d [%t] %p %c %x %r - %m%n# 应用于数据库,启用可以写入日志到数据库log4j.appender.database=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.database.URL=jdbc:mysql://localhost:3306/log?useUnicode=true&characterEncoding=UTF-8&autoReconnect=truelog4j.appender.database.driver=com.mysql.jdbc.Driverlog4j.appender.database.user=rootlog4j.appender.database.password=rootlog4j.appender.database.sql=insert into log (add_time,level,run_time,tread_name,msg,cls_name,cls_method) values (now(),'%p','%r','%t','%m%n','%c','%M')log4j.appender.database.layout = org.apache.log4j.PatternLayoutlog4j.appender.database.layout.ConversionPattern=%d [%t] %p %c %x %r - %m%n

错误原因:

是log4j写入数据库的sql语句中用了单引号,改成双引号即可,如下:

log4j.appender.database.sql=insert into log (add_time,level,run_time,tread_name,msg,cls_name,cls_method) values (now(),'%p','%r','%t','%m%n','%c','%M')

修改为

log4j.appender.database.sql=insert into log (add_time,level,run_time,tread_name,msg,cls_name,cls_method) values (now(),"%p","%r","%t","%m%n","%c","%M")




0 0
原创粉丝点击