Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 2
Регистрация: 27.10.2013
Сообщений: 50
PostgreSQL

При настройке log4j для jdbc вылетает exception

08.12.2016, 22:31. Показов 4791. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Моя цель - настроить логирование с сохранением в базу данных. Использую log4j. Вот сам аппендер, который у меня получился:
XML
1
2
3
4
5
6
7
8
9
10
<JDBC name="databaseAppender" tableName="APPLICATION_LOG">
            <ConnectionFactory class="com.yauhenikuntsevich.training.onlinestore.services.utils.ConnectionToDB"
                method="openConnectionToDB" />
            <Column name="EVENT_ID" literal="APPLICATION_LOG_SEQUENCE.NEXTVAL" />
            <Column name="EVENT_DATE" isEventTimestamp="true" />
            <Column name="LEVEL" pattern="%level" />
            <Column name="LOGGER" pattern="%logger" />
            <Column name="MESSAGE" pattern="%message" />
            <Column name="THROWABLE" pattern="%ex{full}" />
        </JDBC>
При помощи этого класса получаю конекшен, сам по себе он работает, проверял:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.yauhenikuntsevich.training.onlinestore.services.utils;
 
import java.sql.Connection;
import java.sql.DriverManager;
 
public class ConnectionToDB {
    private static final String URL = "jdbc:postgresql://localhost:5432/onlinestore";
    private static final String USER_NAME = "postgres";
    private static final String PASSWORD = "postgres1";
 
    public static Connection openConnectionToDB() {
        try {
            return DriverManager.getConnection(URL, USER_NAME, PASSWORD);
        } catch (Exception e) {
            System.out.println("Сonnection failed");
            e.printStackTrace();
        }
        return null;
    }
}
При этом получается зацикливание и вот такой стектрейс:

2016-12-08 21:20:10,229 ERROR Unable to write to database [jdbcManager{ description=databaseAppender, bufferSize=0, connectionSource=factory{ public static java.sql.Connection com.yauhenikuntsevich.training.onlinesto re.services.utils.ConnectionToDB.openCon nectionToDB() }, tableName=APPLICATION_LOG, columns=[ { name=EVENT_ID, layout=null, literal=APPLICATION_LOG_SEQUENCE.NEXTVAL , timestamp=false }, { name=EVENT_DATE, layout=null, literal=null, timestamp=true }, { name=LEVEL, layout=%level, literal=null, timestamp=false }, { name=LOGGER, layout=%logger, literal=null, timestamp=false }, { name=MESSAGE, layout=%message, literal=null, timestamp=false }, { name=THROWABLE, layout=%ex{full}, literal=null, timestamp=false } ] }] for appender [databaseAppender]. org.apache.logging.log4j.core.appender.A ppenderLoggingException: Failed to insert record for log event in JDBC manager: Метод org.postgresql.jdbc.PgPreparedStatement. setNString(int, String) ещё не реализован

at org.apache.logging.log4j.core.appender.d b.jdbc.JdbcDatabaseManager.writeInternal (JdbcDatabaseManager.java:125)
at org.apache.logging.log4j.core.appender.d b.AbstractDatabaseManager.write(Abstract DatabaseManager.java:167)
at org.apache.logging.log4j.core.appender.d b.AbstractDatabaseAppender.append(Abstra ctDatabaseAppender.java:105)
at org.apache.logging.log4j.core.config.App enderControl.callAppender(AppenderContro l.java:99)
at org.apache.logging.log4j.core.config.Log gerConfig.callAppenders(LoggerConfig.jav a:430)
at org.apache.logging.log4j.core.config.Log gerConfig.log(LoggerConfig.java:409)
at org.apache.logging.log4j.core.config.Log gerConfig.log(LoggerConfig.java:367)
at org.apache.logging.log4j.core.Logger.log Message(Logger.java:112)
at org.apache.logging.slf4j.Log4jLogger.log (Log4jLogger.java:375)
at org.eclipse.jetty.util.log.JettyAwareLog ger.log(JettyAwareLogger.java:620)
at org.eclipse.jetty.util.log.JettyAwareLog ger.info(JettyAwareLogger.java:314)
at org.eclipse.jetty.util.log.Slf4jLog.info (Slf4jLog.java:74)
at org.eclipse.jetty.util.log.Log.initializ ed(Log.java:186)
at org.eclipse.jetty.util.log.Log.getLogger (Log.java:288)
at org.eclipse.jetty.util.log.Log.getLogger (Log.java:278)
at org.eclipse.jetty.util.component.Abstrac tLifeCycle.<clinit>(AbstractLifeCycle.ja va:35)
at com.yauhenikuntsevich.training.onlinesto re.web.StartJetty.main(StartJetty.java:2 2)

Caused by: java.sql.SQLFeatureNotSupportedException : Метод org.postgresql.jdbc.PgPreparedStatement. setNString(int, String) ещё не реализован
at org.postgresql.Driver.notImplemented(Dri ver.java:646)
at org.postgresql.jdbc.PgPreparedStatement. setNString(PgPreparedStatement.java:1518 )
at org.apache.logging.log4j.core.appender.d b.jdbc.JdbcDatabaseManager.writeInternal (JdbcDatabaseManager.java:110)
... 16 more
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2016, 22:31
Ответы с готовыми решениями:

Программа для работы с MS Word: при вызове Quit() вылетает Exception
Пишу программу для работы с Word. Использую класс для работы с Word using System; using System.Collections.Generic; using...

Поймать exception, который вылетает при доступе к элементу пустого вектора
Подскажите как правильно поймать exception, который вылетает при доступе к 1 элементу пустого вектора. #include &lt;iostream&gt; ...

вылетает ошибка Exception EOleSysError in module PR_KVR.exe at 0005280D. Класс не лицензирован для использования.
Доброго времени суток! Столкнулся с проблемой переноса программы, на другом компе не хочет запускаться... а теперь по порядку. Имеется...

21
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
09.12.2016, 12:44
Лучший ответ Сообщение было отмечено antopro как решение

Решение

Студворк — интернет-сервис помощи студентам
antopro, ясно. Это не отменяет факта что интерфейс реализован неверно.
Проблема ваша в том что postgres действительно не реализует метод setNstring. Скорее всего вам поможет не использовать юникод в ваших колонках, тогда будет вызван обычный метод setString. Попробуйте переделать конфиг логера

XML
1
2
3
4
            <Column name="DATED" isEventTimestamp="true" isUnicode="false" />
            <Column name="LEVEL" pattern="%level" isUnicode="false" />
            <Column name="LOGGER" pattern="%logger" isUnicode="false" />
            <Column name="MESSAGE" pattern="%msg%n" isUnicode="false" />
1
0 / 0 / 2
Регистрация: 27.10.2013
Сообщений: 50
09.12.2016, 13:01  [ТС]
KEKCoGEN, спасибо, думал застрелюсь, заработало)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.12.2016, 13:01

The web application [ROOT] registered the JDBC driver . Exception
Запускаю веб проект на tomcat и получаю такую ошибку: WARNING org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The...

Вылетает на std::length_error exception
название не очень отражает суть вопроса, но лучше я предумать не смог. Есть программа собранная в дебаге (-g) к ней линкуется только одна...

DOS в полный экран.вылетает Exception
У меня такая проблема: моя программа вызывает CreateProcess для запуска DOS-приложения. Оно появляется в окошке, а мне надо бы его...

При вводе ключей (для всех команд /?, для sort /r, для dir /o:s /a:-d /o:n) программа вылетает
Всем доброго времени суток, исправьте пжл ошибку в коде. program os_cmd; uses windows,crt,dos; var sdir,sdirc : string; ...

Использование Log4j для отправки сообщений по почте
Здравствуйте, Кто-нибудь смог настроить log4j (в паре с Tomcat) для отсылки сообщений об ошибках по почте? Использую такую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru