我想更改日志级别而不重新启动服务器。我用weblogic
服务器。为此,我想从外部文件( LOGBackIncludedFile.xml
)传递日志级别,并在日志中给出此文件路径 <include file>
。 。
我无法对路径进行硬编码,因为 Dev
中的路径不同, UAT
, Production
。我想将此文件包含在 Weblogic 12C
内的位置中服务器。所以我可以更改日志级别而无需触摸 ear
文件。
<configuration scan="true" scanPeriod="30 seconds">
<include file="../../LOGBackIncludedFile.xml" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" >
<encoder>
<pattern>%date %-5level [%logger] > %msg%n</pattern>
</encoder>
</appender>
<root level="${root.level:-DEBUG}">
<appender-ref ref="STDOUT" />
</root>
</configuration>
下面是LOGBackIncludedFile.xml
<included>
<property value="INFO" name="root.level"/>
</included>
当我使用这个现有的 xml 时,我收到此错误。
java.io.FileNotFoundException: /usrXX/appXX/oracle/product/XXX/domains/XXXDomain/../../LOGBackIncludedFile.xml
我的问题是如何在 logback.xml 中动态设置外部文件路径。路径应该是特定的weblogic
instance
。当我将外部文件放入我的实例中时。
例如:/usrxx/appxx/oracle/product/XXX/domains/xxxDomain/servers/myInstance/
最佳答案
如下设置文件路径。这是针对 weblogic 12C 的。
<include optional="true" file="${DOMAIN_HOME}/servers/${SERVER_NAME}/LOGBackIncludedFile.xml" />
关于java - 在运行时通过外部属性文件更改 logback 中的日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976870/