java - 在运行时通过外部属性文件更改 logback 中的日志级别

标签 java logback weblogic12c

我想更改日志级别而不重新启动服务器。我用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/

相关文章:

java - 没有经验的 java 用户请求有关类的建议

java - Selenium Java - 页面对象模型查询

java - 如何使用 JDBC 连接到本地主机?

java - 应用程序不将日志保存到特定的附加程序

java - Weblogic服务器性能低下

java - WebLogic 12c 上的 JSF 2 中的 Stackoverflow 错误

java - 无法在扩展 PropertyChangeListener 的 Main 类中拦截 PropertyChangeEvent,为什么?

mysql - 日志记录级别低,导致关闭 Hook 无法正常运行

logging - Spring Boot - 如何为每个配置文件拥有不同的日志配置?

java - Spring security BASIC 身份验证在 Weblogic 上提示两次输入用户名/密码