java - 如何将 OCI JAVA SDK 日志写入 Weblogic Server 日志文件

标签 java weblogic oracle-cloud-infrastructure oci-java-sdk

这里我使用 Weblogic 12c Server 来部署我的 Web 应用程序。在我的应用程序中,我使用 OCI JAVA SDK 与 Oracle 云基础设施 (OCI) 服务进行交互。根据 OCI 的文档,“OCI JAVA SDK”正在使用 SLF4J 日志记录。这样我就将“slf4j-jdk14-1.7.23.jar”JAR 文件捆绑到了我的ear 文件中。我仍然无法在 weblogic 日志文件中看到 OCI SDK 生成的日志。

我还在 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”未找到类错误已解决。但仍然无法在weblogic日志文件中看到SDK生成的日志语句。

我是否缺少任何特定配置?

最佳答案

不幸的是,我没有任何 Weblogic 的经验,但我尝试从命令行配置“JDK14”样式的日志记录,希望对您有所帮助。

作为示例,我正在使用 PaginationExample.java ,位于 examplesoci-java-sdk.zip的目录您可以从 releases page 下载该文件.

我已经解压了 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 level(在 slf4j 术语中为 DEBUG)会转到控制台和文件。

这适用于命令行。听起来 WebLogic 正在使用 JDK14 java.util.logging框架,我们需要 slf4j 来填充它。您已经按照建议执行了 here .

由于上述配置适用于控制台和文件,我想知道 [服务器日志记录桥]( https://docs.oracle.com/middleware/1212/wls/WLLOG/logging_services.htm#WLLOG200 ) 未正确配置。

此页面似乎描述了如何做到这一点:http://buttso.blogspot.com/2011/06/using-slf4j-with-weblogic-server.html

关于java - 如何将 OCI JAVA SDK 日志写入 Weblogic Server 日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50562890/

相关文章:

java - 无法在 Oracle Cloud 中创建 Oracle Java Cloud Service 实例

oracle-cloud-infrastructure - 通过代理的oci java sdk

java - "call"用于调用 mysql 函数在 jdbc 上工作但在 mysql 上不工作

java - 在android中后台访问麦克风

java - 有时数据包只有在进程结束后才传输? [Java]

java - WebLogic - 在 WebLogic Server 中部署 Spring Boot war

java - 如何找到导致 JVM 内存不足的类?

java - 如何生成里面有logo的二维码?

java - 如何使用 Weblogic 10.3 获取从 JNDI 数据源获取的 JDBC 连接以参与 UserTransaction?

linux - 无法通过 SSH 连接到 Oracle 云实例