这里我使用 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 ,位于 examples
中oci-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/