Как записать журналы OCI JAVA SDK в файлы журналов Weblogic Server

Здесь я использую Weblogic 12c Server для развертывания моего веб-приложения. В своем приложении я использую OCI JAVA SDK для взаимодействия со службой Oracle Cloud Infrastructure(OCI). Согласно документации OCI, "OCI JAVA SDK" использует протоколирование SLF4J. Так что я включил файл JAR "slf4j-jdk14-1.7.23.jar" в мой файл ear. Тем не менее, я не смог увидеть журналы, созданные OCI SDK, в файлах журналов weblogic.

Я также добавил следующие записи в weblogic-application.xml:

<prefer-application-packages>
    <package-name>org.slf4j.*</package-name>
</prefer-application-packages>


<!-- if not using prefer-application-resources you will get a warning like this: -->
<!-- Class path contains multiple SLF4J bindings -->
<!-- SLF4J: Found binding in [jar:file:/C:/wls1211/modules/org.slf4j.jdk14_1.6.1.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] -->
<prefer-application-resources>
    <resource-name>org/slf4j/impl/StaticLoggerBinder.class</resource-name>
</prefer-application-resources>

После добавления указанных выше записей класс "StaticLoggerBinder" не найден, ошибки устранены. Но все еще не в состоянии увидеть сгенерированные SDK операторы журнала в файлах журналов weblogic.

Я пропускаю какую-то конкретную конфигурацию?

1 ответ

К сожалению, у меня нет опыта работы с Weblogic, но я попытался настроить ведение журнала в стиле "JDK14" из командной строки, надеясь, что это поможет вам.

В качестве примера я использую PaginationExample.java, который находится в examples каталог oci-java-sdk.zip файл, который вы можете скачать со страницы релизов.

Я распаковал oci-java-sdk.zip файл, измененный в examples каталог и скомпилировал PaginationExample.java файл:

cd oci-java-sdk/examples
javac -cp "../lib/oci-java-sdk-full-1.2.38.jar:../third-party/lib/*" PaginationExample.java

Теперь у меня есть PaginationExample.class файл в текущем каталоге.

Я также скачал файл slf4j-1.7.23.zip и распаковал его. Для меня файл моста регистрации JDK ../../slf4j-1.7.23/slf4j-jdk14-1.7.23.jar,

Теперь я могу написать logging.properties файл для настройки ведения журнала JDK14, например:

handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level = FINE
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.FileHandler.level = FINE
java.util.logging.FileHandler.pattern = java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%4$s [%1$tc]: %5$s%n

Теперь я могу запустить пример, используя:

java -Djava.util.logging.config.file=logging.properties -cp ../lib/oci-java-sdk-full-1.2.38.jar:../third-party/lib/*:../../slf4j-1.7.23/slf4j-jdk14-1.7.23.jar:. PaginationExample <tenancy ocid>

С выше logging.properties файл, вывод, вплоть до FINE уровень (который DEBUG в терминологии slf4j) идет как в консоль, так и в файл.

Это работает в командной строке. Похоже, что WebLogic использует JDK14 java.util.logging рамки, и нам нужно получить slf4j для подачи в этом. Вы уже делаете то, что было рекомендовано здесь.

Поскольку вышеуказанная конфигурация работает для консоли и файла, мне интересно, не настроен ли [мост ведения журнала сервера] ( https://docs.oracle.com/middleware/1212/wls/WLLOG/logging_services.htm) правильно.

На этой странице описывается, как это сделать: http://buttso.blogspot.com/2011/06/using-slf4j-with-weblogic-server.html

Другие вопросы по тегам