From a1e6a799ef1657b9f311e9d578d04e105889b9ec Mon Sep 17 00:00:00 2001 From: jkee <jkee@yandex-team.ru> Date: Mon, 16 Mar 2015 21:54:21 +0300 Subject: [PATCH] METR-15511: logger --- README.md | 4 ++ .../yandex/metrika/clickhouse/CHDriver.java | 5 ++ .../metrika/clickhouse/util/Logger.java | 61 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 src/main/java/ru/yandex/metrika/clickhouse/util/Logger.java diff --git a/README.md b/README.md index 16f04b0d..11272404 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 6d475d5d..af4ec6e7 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 00000000..68e83adb --- /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); + } + } + +} -- GitLab