[jira] Created: (CAY-1039) Log level INFO for error at creating db table should be WARN

From: JIRA (Borut)
Date: Thu Apr 24 2008 - 09:16:52 EDT

  • Next message: Michael Gentry: "Re: Enums as PK?"

    Log level INFO for error at creating db table should be WARN
    ------------------------------------------------------------

                     Key: CAY-1039
                     URL: https://issues.apache.org/cayenne/browse/CAY-1039
                 Project: Cayenne
              Issue Type: Improvement
              Components: Cayenne Core Library
        Affects Versions: 3.0
             Environment: 3.0M3
                Reporter: Borut BolĨina
                Assignee: Andrus Adamchik
                Priority: Minor

    When running

                DbGenerator generator = new DbGenerator(autoDbAdapter, dataMap);
                
                generator.setShouldDropTables(false);
                generator.setShouldCreateFKConstraints(false);
                generator.setShouldDropPKSupport(false);
                generator.setShouldCreatePKSupport(true);
                
                generator.runGenerator(dataSource);

    and the database tables already exist and the logger is configured like

                log4j.logger.org.apache.cayenne.access.QueryLogger = info

    the log output looks like:

     INFO [14:49:11.665] CREATE TABLE template (id INT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY (id)) ENGINE=InnoDB
     INFO [14:49:11.665] *** error.
    com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'template' already exists
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
            at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
            at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
            at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:734)
            at org.apache.cayenne.access.DbGenerator.safeExecute(DbGenerator.java:352)
            at org.apache.cayenne.access.DbGenerator.runGenerator(DbGenerator.java:293)
            at com.interseek.portal.server.Bootstrap.createTables(Bootstrap.java:155)
            at com.interseek.portal.server.Bootstrap.<init>(Bootstrap.java:58)
            at com.interseek.portal.server.Bootstrap.main(Bootstrap.java:71)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:271)
            at java.lang.Thread.run(Thread.java:595)

    Wouldn't it be more appropriate if the level for ***error was WARN?

    How should I configure the logger to supress this ***error messages. I want to log them nicely with:

                ValidationResult validationResult = generator.getFailures();
                List<ValidationFailure> list = validationResult.getFailures();
                if (list.isEmpty()) {
                    logger.info("Database tables generated successfully.");
                }
                for (ValidationFailure validationFailure : list) {
                    logger.error(validationFailure.getDescription());
                }

    -- 
    This message is automatically generated by JIRA.
    -
    You can reply to this email to add a comment to the issue online.
    



    This archive was generated by hypermail 2.0.0 : Thu Apr 24 2008 - 09:20:33 EDT