В рамках развертывания моего приложения lagom в производственной среде kubernetes я пытаюсь опубликовать sh все свои журналы в файл, помимо записи в стандартный вывод. Для этого я создал logback.xml
в каталоге ресурсов, добавив файл appender согласно предложению здесь .
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home:-.}/logs/application.log</file>
<encoder>
<pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
</encoder>
</appender>
Но он не может создать файл журнала в рабочем каталоге контейнера. Вместо этого я получаю следующую ошибку:
09:23:33,209 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCSTDOUT] - Setting discardingThreshold to 51
09:23:33,209 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender]
09:23:33,213 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
09:23:33,217 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
09:23:33,220 |-INFO in ch.qos.logback.core.FileAppender[FILE] - File property is set to [./logs/application.log]
09:23:33,222 |-ERROR in ch.qos.logback.core.FileAppender[FILE] - Failed to create parent directories for [/opt/docker/./logs/application.log]
09:23:33,222 |-ERROR in ch.qos.logback.core.FileAppender[FILE] - openFile(./logs/application.log,true) call failed. java.io.FileNotFoundException: ./logs/application.log (No such file or directory)
at java.io.FileNotFoundException: ./logs/application.log (No such file or directory)
at at java.io.FileOutputStream.open0(Native Method)
Я не совсем уверен, почему не удается создать каталог журнала и файл журнала в рабочем каталоге контейнера.
demiourgos728@ca5fc4a4c1db:/opt/docker$ ls
bin lib share
Я попытался предоставить разрешение на чтение, запись и выполнение в рабочем каталоге контейнера, как показано ниже, но это тоже не сработало:
DockerChmodType.UserGroupWriteExecute
Пожалуйста, предложите.
- Docker base images conf :
dockerBaseImage := "adoptopenjdk/openjdk8"
. - Весь файл журнала здесь .
- Определения K8S