@lovly093

Как реализовать постоянное чтение журналов базы данных в терминале приложения?

Хочу реализовать запросы на чтение из БД, но все мои решения какие-то не правильные.

Stack: postgresql, java 19, JDBC

если вдруг я не так объяснил, то я прикрепил скрин, что хочу, что бы выводился в консоль при запуске приложения (то есть да, подразумевается работа до принудительного завершения или критической ошибки).

35ab60a05eed817d.png

моя попытка реализации

public static void main(String[] args) {
        Properties props = new Properties();
        props.setProperty("user", USERNAME);
        props.setProperty("password", PASSWORD);
        props.setProperty("logLevel", "2");

        try (Connection connection = DriverManager.getConnection(JDBC_URL, props)) {
            connection.setAutoCommit(false);

            PGConnection pgConnection = connection.unwrap(PGConnection.class);

            while (true) {
                Arrays.stream(pgConnection.getNotifications()).forEach((event) ->
                        LOGGER.info(getCurrentTime() + "|" + event.getParameter()));
            }
        } catch (SQLException e) {
            LOGGER.log(Level.SEVERE, "Error occurred: " + e.getMessage(), e);
        }
    }
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
Включите логирование, и читайте лог через tail -f, например
https://stackoverflow.com/questions/722221/how-to-...

Учтите, что это влияет на производительность.
Вообще как-то pgadmin это делает и без включения полного логирования, видимо есть и другие пути.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы