Java Spring Boot не регистрирует исключения - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть служба весенней загрузки.Когда я отправляю запрос в сервис, я хотел бы узнать, был ли он успешным или нет.Если остальные службы успешно, logger.info (любой регистратор будет зарегистрирован, даже logger.error) будет зарегистрирован на консоли.Однако, когда выдается исключение SQL, он не записывает часть logger.error в консоль.Как мне получить его, чтобы при возникновении исключения он также записывал эту часть в консоль?

Вот метод теста:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory   

public String testMethod(){
    try{

        LOGGER.info("running test method");

        Class.forName("oracle.jdbc.driver.OracleDriver");

        Connection test = DriverManager.getConnection(
                datasourceUrl,datasourceUsername,datasourcePassword);
        //Select data
        Statement stmt = test.createStatement();

        InputStream input = getClass().getResourceAsStream("/testMethodSQL.sql");
        String insertTableSQL = IOUtils.toString(input);

         PreparedStatement preparedStatement = prod.prepareStatement(insertTableSQL);

        ResultSet rs = preparedStatement.executeQuery();

        }

        test.close();

        LOGGER.info("test Method successfully ran");

        return "Done";
    }
    catch (Exception e) {
        e.printStackTrace();
        LOGGER.error("Error found: {}", e);
        return "An error occured: " +  e;
    }

}

Вот мой файл logback.xml:

<configuration>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
    </encoder>
</appender>

<root level="info">
    <appender-ref ref="Console" />
</root>

</configuration>

Например, если выброшено исключение, результаты будут напечатаныout:

{"@timestamp":"2019-02-12T10:07:05.989-05:00","@version":1,"message":"running test method","logger_name":"com.test","thread_name":"http-nio-8080-exec-2","level":"INFO","level_value":20000,"RequestId":"6D71709D5A1A4C83876B68A661D696E3"}

java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (TEST_TABLE.SYS_C0013283) violated

Однако он не регистрирует часть Logger.error

1 Ответ

0 голосов
/ 12 февраля 2019

Чтобы включить ведение журнала, создайте файл application.properties в корне папки ресурсов, и вам нужно добавить уровень ведения журнала в application.properties

logging.level.org.springframework.web=ERROR
logging.level.com.mkyong=DEBUG

или просто добавить их в свой logback.xml

    <logger name="com.mkyong" level="debug"
        additivity="false">
        <appender-ref ref="FILE-AUDIT" />
    </logger>

    <root level="error">
        <appender-ref ref="FILE-AUDIT" />
    </root>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...