diff --git a/README.md b/README.md index 16f04b0d7b695cdfe09e0a1cddfb4d2344edc91b..112724046388496462774638a2404521e588ce2f 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,14 @@ ClickHouse JDBC driver Пока что в ÑоÑтоÑнии "как-то работает". +### Сборка + jar можно Ñобрать через `mvn package assembly:single` И забрать в `target/jdbc-1.0-SNAPSHOT-jar-with-dependencies.jar` +СобиратьÑÑ Ð±ÑƒÐ´ÐµÑ‚ только еÑли Ñтоит jdk 1.6 и еÑли она пропиÑана в $JAVA_HOME при Ñборке (или 1.6 Ñто дефолт). + Позже Ñделаю заливку поÑледней верÑии куда-нибудь. diff --git a/src/main/java/ru/yandex/metrika/clickhouse/CHDriver.java b/src/main/java/ru/yandex/metrika/clickhouse/CHDriver.java index 6d475d5d055bc966637590d2aef0b45b04aa043b..af4ec6e7767c2abd0fe0f3cf4462c4a9ce2b4f9f 100644 --- a/src/main/java/ru/yandex/metrika/clickhouse/CHDriver.java +++ b/src/main/java/ru/yandex/metrika/clickhouse/CHDriver.java @@ -1,5 +1,7 @@ package ru.yandex.metrika.clickhouse; +import ru.yandex.metrika.clickhouse.util.Logger; + import java.sql.*; import java.util.Properties; @@ -8,6 +10,8 @@ import java.util.Properties; */ public class CHDriver implements Driver { + private static final Logger logger = Logger.of(CHDriver.class); + static { CHDriver driver = new CHDriver(); try { @@ -15,6 +19,7 @@ public class CHDriver implements Driver { } catch (SQLException e) { throw new RuntimeException(e); } + logger.info("Driver registered"); } @Override diff --git a/src/main/java/ru/yandex/metrika/clickhouse/util/Logger.java b/src/main/java/ru/yandex/metrika/clickhouse/util/Logger.java new file mode 100644 index 0000000000000000000000000000000000000000..68e83adbaa3c929ed1bf4288aa762653c71b9fa8 --- /dev/null +++ b/src/main/java/ru/yandex/metrika/clickhouse/util/Logger.java @@ -0,0 +1,61 @@ +package ru.yandex.metrika.clickhouse.util; + +import java.sql.DriverManager; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.logging.Level; + +/** + * Тупой логгер. При желании можно перейти на что-то приличное, что умеет пиÑать в PrintWriter и конфигуритьÑÑ Ð½Ð° лету. + * + * Created by jkee on 16.03.15. + */ +public class Logger { + + private static Level currentLevel = Level.INFO; // todo configuration + + private final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + private final String key; + + private Logger(String key) { + this.key = key; + } + + public static Logger logger(String key) { + return new Logger(key); + } + + public static Logger of(Class clazz) { + return new Logger(clazz.getSimpleName()); + } + + public static Logger of(Object object) { + return new Logger(object.getClass().getSimpleName()); + } + + public void info(String message) { + log(message, Level.INFO); + } + + public void debug(String message) { + log(message, Level.FINE); + } + + public void warn(String message) { + log(message, Level.WARNING); + } + + public void error(String message) { + log(message, Level.SEVERE); + } + + public synchronized void log(String message, Level level) { + if (level.intValue() >= currentLevel.intValue()) { + String str = String.format("%s <%s> %s: %s", DATE_FORMAT.format(new Date()), level.getName(), key, message); + DriverManager.println(str); + } + } + +}