You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cayenne.apache.org by "Kevin Menard (JIRA)" <de...@cayenne.apache.org> on 2008/09/12 22:57:11 UTC

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

    [ https://issues.apache.org/cayenne/browse/CAY-1039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13099#action_13099 ] 

Kevin Menard commented on CAY-1039:
-----------------------------------

Looking at this a bit more, changing the message and the log level just pushes the problem elsewhere.  E.g., attempting to create a table with an invalid schema name is a hard error.  The log level of INFO is probably inappropriate in this case, but the "*** error" is.

I'll have to think about this a bit more, but there may just not be enough we can do.  The only way I see to get accurate messages across the board is to look at each driver's custom exceptions and log accordingly.

> 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: Kevin Menard
>            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.