xml файл logback не найден, исключение на движке GCP App - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть загрузочное приложение Spring.Для системы регистрации я использую logback.Тип упаковки WAR, а не JAR.Чтобы использовать файл журнала, я указал параметр в application.properties как:

logging.config=file:./src/main/resources/logback.xml

Эта конфигурация работает правильно в локальной системе, то есть она может найти файл журнала, и журналы создаются науказанное место.Но проблема в том, что после развертывания этого кода в ядре приложения GCP я получаю сообщение об ошибке ниже:

java.lang.RuntimeException: java.lang.IllegalStateException: java.io.FileNotFoundException: /base/data/home/apps/s~location-finder-231303/1.416014753384786654/logback.xml (No such file or directory)
    at org.eclipse.jetty.annotations.ServletContainerInitializersStarter.doStart(ServletContainerInitializersStarter.java:68)

Принимая во внимание, что файл logback уже включен в файл .war.Я что-то пропустил?Пожалуйста, порекомендуйте.Заранее спасибо!

1 Ответ

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

Согласно этому документу Файлы конфигурации , все файлы, относящиеся к WAR-файлу, будут помещены в папку / WEB-INF /.

Приложение Java не может использовать классы, используемые длязапись в файловую систему, такую ​​как java.io.FileWriter.Приложение может читать свои собственные файлы из файловой системы, используя классы, такие как java.io.FileReader.Приложение также может обращаться к своим собственным файлам в качестве «ресурсов», например с помощью Class.getResource () или ServletContext.getResource ().

Только файлы, которые считаются «файлами ресурсов», доступны для приложения черезфайловая система.По умолчанию все файлы в WAR являются «файлами ресурсов».Вы можете исключить файлы из этого набора, используя файл appengine-web.xml.

Таким образом, вы можете удалить параметр logging.config из application.properties (он должен прочитать путь по умолчанию в файле war) илизагрузите logback.xml и измените путь на ./WEB-INF/logback.xml.Внутри src / main / webapp / WEB-INF / appengine-web.xml добавьте конфигурацию, которая указывает на новый файл logback.xml.Пример:

<property name="java.util.logging.config.file" value="WEB-INF/classes/logback.xml"/>

В этом примере вы можете получить дополнительную информацию SpringBoot HelloWorld for App Engine Standard (Java 8) .

Ошибки нехватки памяти

При Spring Boot> = 1.5.6 вы можете столкнуться с нехваткой памяти при запуске.Пожалуйста, следуйте этим инструкциям, чтобы обойти эту проблему:

Внутри src / main / resources, добавив файл logging.properties с:

.level = INFO

Внутри src / main/webapp/WEB-INF/appengine-web.xml, добавьте конфигурацию, которая указывает на новый файл logging.properties.

<system-properties>
  <property name="java.util.logging.config.file" value="WEB-INF/classes   /logging.properties"/>
</system-properties>
...