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

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

08.12.2016, 22:31. Показов 4581. Ответов 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
Ответ Создать тему
Новые блоги и статьи
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru