-1

When i have a error on a database connection, i need to log it (with Database name and username that tried to connect to the db, don't need to log the password), I use Sprig-Mybatis on my aplication.

Any ideas how to do that?

Best Regards

vmfesta
  • 159
  • 1
  • 1
  • 9

1 Answers1

0

There is no other special way to do as a simple try/catch in java will get you the expection. For example a simple program where I am calling a mybatis mapper method:

    try{
    List result = mapper.myBatisMapperMethod();//this is responsible to set up 
                                              //a connection and run a query
    }

Suppose the above call fails due to invalid authentication say the below where my password is wrong connection exception that I usually get in mybatis:

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Login failed for user 'applicationUsername'.)
        Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Login failed for user 'applicationUsername'.)
            at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225)
            at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
            at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
            at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
            ... 65 more
        Caused by: 
    com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'applicationUsername'.

what I do is have a simple catch to above try you can have an sql exception catched but here I use simply Exception.

 catch(Exception e){
        //Suppose you are using Log4j You can simply
        logger.error("This is my error log message"+e.getMessage());
        //The above will log any kind of exception including the authentication fail or you 
        can specifically log a particular kind of exception.Java wont log failed password it just logs the user who tried unless you explicitly want to log it.
    }
SiddP
  • 1,603
  • 2
  • 14
  • 36