Altibase.jdbc.driver.logging

## Class ConnectionLoggingProxy

- java.lang.Object
- - Altibase.jdbc.driver.logging.LoggingProxy
  - - Altibase.jdbc.driver.logging.ConnectionLoggingProxy

All Implemented Interfaces:
  java.lang.reflect.InvocationHandler

    public class ConnectionLoggingProxy
    extends LoggingProxy

java.sql.Connection 인터페이스를 hooking하는 Proxy클래스

Author:
  yjpark

### Field Summary

### Fields inherited from class Altibase.jdbc.driver.logging.LoggingProxy

`JDBC_LOGGER_ASYNCFETCH, JDBC_LOGGER_CM, JDBC_LOGGER_DEFAULT, JDBC_LOGGER_FAILOVER, JDBC_LOGGER_POOL, JDBC_LOGGER_ROWSET, JDBC_LOGGER_XA, METHOD_PREFIX_CLOSE, mLogger, mTarget, mTargetName`

### Constructor Summary

Constructors
Constructor and Description
`ConnectionLoggingProxy(java.lang.Object aTarget)` 기본적인 생성자 uniqueid를 생성한 후 객체가 생성되었다는 로그를 남긴다.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected java.lang.Object` `createProxyWithReturnValue(java.lang.Object aResult)` 메소드 실행결과를 이용해 필요하면 Proxy객체를 만들고 로그를 남긴다.
`java.lang.String` `getUniqueId()` 고유한 아이디를 생성한다.
`void` `logSql(java.lang.reflect.Method aMethod, java.lang.Object aResult, java.lang.Object[] aArgs)` java.sql.Connection 인터페이스의 prepare메소드가 호출되었을 때 해당 sql문을 CONFIG레벨로 남긴다.
`protected void` `logSqlTiming(java.lang.reflect.Method aMethod, long aStartTime)` sql문이 실행되는데 걸린 시간을 출력한다.

### Methods inherited from class Altibase.jdbc.driver.logging.LoggingProxy

`invoke, logClose, logReturnValue, makeArgStr`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ConnectionLoggingProxy

    public ConnectionLoggingProxy(java.lang.Object aTarget)

기본적인 생성자
uniqueid를 생성한 후 객체가 생성되었다는 로그를 남긴다.

Parameters:
  `aTarget` -

### Method Detail

#### logSql

    public void logSql(java.lang.reflect.Method aMethod,
                       java.lang.Object aResult,
                       java.lang.Object[] aArgs)

java.sql.Connection 인터페이스의 prepare메소드가 호출되었을 때 해당 sql문을 CONFIG레벨로 남긴다.

Overrides:
  `logSql` in class `LoggingProxy`

#### logSqlTiming

    protected void logSqlTiming(java.lang.reflect.Method aMethod,
                                long aStartTime)

Description copied from class: `LoggingProxy`
sql문이 실행되는데 걸린 시간을 출력한다.

Overrides:
  `logSqlTiming` in class `LoggingProxy`

#### createProxyWithReturnValue

    protected java.lang.Object createProxyWithReturnValue(java.lang.Object aResult)

Description copied from class: `LoggingProxy`
메소드 실행결과를 이용해 필요하면 Proxy객체를 만들고 로그를 남긴다.

Overrides:
  `createProxyWithReturnValue` in class `LoggingProxy`
Returns:

#### getUniqueId

    public java.lang.String getUniqueId()

고유한 아이디를 생성한다.
AltibaseConnection인 경우에는 서버에서 받아온 세션ID로 셋팅하고
AltibaseLogicalConnection인 경우에는 그냥 hashcode를 사용한다.

Overrides:
  `getUniqueId` in class `LoggingProxy`