Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 在maven2中使用jdbcdslog或log4jdbc_Maven 2_Logging_Jdbc - Fatal编程技术网

Maven 2 在maven2中使用jdbcdslog或log4jdbc

Maven 2 在maven2中使用jdbcdslog或log4jdbc,maven-2,logging,jdbc,Maven 2,Logging,Jdbc,我试图在maven2中使用jdbcdslog或log4jdbc我想记录由MVNSQL执行的所有SQL 我将slf4j api(1.6.1)、slf4j-log4j12(1.6.1)和jdbcdslog(1.0.5)JAR安装到本地maven2回购中,并在pom.xml中配置以下内容: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sql-maven-plugin</

我试图在maven2中使用jdbcdslog或log4jdbc我想记录由MVNSQL执行的所有SQL

我将slf4j api(1.6.1)、slf4j-log4j12(1.6.1)和jdbcdslog(1.0.5)JAR安装到本地maven2回购中,并在pom.xml中配置以下内容:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.3</version>
  <dependencies>
    <dependency>
      <groupId>jdbcdslog</groupId>
      <artifactId>jdbcdslog</artifactId>
      <version>1.0.5</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc14</artifactId>
      <version>9.0.2.0.0</version>
    </dependency>
  </dependencies>

  <configuration>
    <driver>org.jdbcdslog.DriverLoggingProxy</driver>
  </configuration>

  <executions>
    <execution>
       ...
      <configuration>    <url>jdbc:jdbcdslog:oracle:thin:@myurl.com:1521:TEST;targetDriver=oracle.jdbc.driver.OracleDriver</url>
      ...
      </configuration>
    </execution>                    
  </executions>
</plugin>

org.codehaus.mojo
SQLMaven插件
1.3
jdbcslog
jdbcslog
1.0.5
org.slf4j
slf4j api
1.6.1
org.slf4j
slf4j-log4j12
1.6.1
com.oracle
ojdbc14
9.0.2.0.0
org.jdbcslog.DriverLoggingProxy
...
jdbc:jdbcdlog:oracle:thin:@myurl.com:1521:TEST;targetDriver=oracle.jdbc.driver.OracleDriver
...
执行此操作将导致:

java.lang.NoClassDefFoundError:org/slf4j/LoggerFactory 位于org.jdbcslog.DriverLoggingProxy(DriverLoggingProxy.java:16)

使用log4jdbc时也会发生相同的错误。有人知道那个问题吗

谢谢和亲切的问候,
汉诺

我无法重现这个问题。使用以下配置(使用“简单”绑定):


当然,我使用的是另一个SLF4J绑定,但我认为这种差异并不相关(即使使用log4j的绑定,我也无法重现
NoClassDefFoundError
)。也许可以检查您的SLF4J jar是否已损坏(重新下载)。顺便说一下,您缺少对
log4j
作为日志框架的依赖

我无法重现这个问题。使用以下配置(使用“简单”绑定):

当然,我使用的是另一个SLF4J绑定,但我认为这种差异并不相关(即使使用log4j的绑定,我也无法重现
NoClassDefFoundError
)。也许可以检查您的SLF4J jar是否已损坏(重新下载)。顺便说一下,您缺少对
log4j
作为日志框架的依赖

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sql-maven-plugin</artifactId>
    <version>1.3</version>
    <dependencies>
      <dependency>
        <groupId>jdbcdslog</groupId>
        <artifactId>jdbcdslog</artifactId>
        <version>1.0.5</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.1</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.6.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derbyclient</artifactId>
        <version>10.5.3.0_1</version>
      </dependency>
    </dependencies>
    <configuration>
      <driver>org.jdbcdslog.DriverLoggingProxy</driver>
      <url>jdbc:jdbcdslog:derby://localhost:1527/Q3854037-1.0-SNAPSHOT;targetDriver=org.apache.derby.jdbc.ClientDriver</url>
      <username>APP</username>
      <password>APP</password>
    </configuration>
    <executions>
      <execution>
        <id>drop-db-before-test-if-any</id>
        <phase>process-test-resources</phase>
        <goals>
          <goal>execute</goal>
        </goals>
        <configuration>
          <autocommit>true</autocommit>
          <sqlCommand>select * from FOO</sqlCommand>
          <!-- ignore error when database is not avaiable -->
          <onError>continue</onError>
        </configuration>
      </execution>
    </executions>
  </plugin>
$ mvn test [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building Q3854037 [INFO] task-segment: [test] [INFO] ------------------------------------------------------------------------ ... [INFO] Executing commands 821 [main] INFO org.jdbcdslog.StatementLogger - java.sql.Statement.execute select * from FOO 100 ms. at org.codehaus.mojo.sql.SqlExecMojo.execSQL(SqlExecMojo.java:815) [INFO] 1 of 1 SQL statements executed successfully ...