我想在不重新启动服务器的情况下更改日志级别。我使用weblogic
服务器。为此,我想从外部文件(LOGBackIncludedFile.xml
)传递日志级别,并在logback <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/
答案 0 :(得分:1)
设置文件路径如下。这适用于weblogic 12C。
<include optional="true" file="${DOMAIN_HOME}/servers/${SERVER_NAME}/LOGBackIncludedFile.xml" />