从weblogic域目录读取配置文件

时间:2011-07-20 18:04:59

标签: logging configuration logback weblogic11g

我有一个配置文件,其中列出了Logback.xml的所有配置详细信息,例如日志文件位置和日志级别等。我将此文件放在weblogic域目录下的资源中。我的项目中还有一个属性文件,它应该指向配置文件。这样的事情。

iam.config.file=resources/iam_config.properties

我的logback.xml看起来像这个

 <configuration>
  <property file="${iam.config.file}"/>
  <appender name="iamLogFileAppender" class="ch.qos.logback.core.FileAppender">
    <!-- Tests run on modern PCs show that buffering related property -->
    <!-- "ImmediateFlush" has negligible impact and will be ignored.  -->
    <File>${iam.upm.log.file}</File>
    <Append>false</Append>
    <encoder>
      <pattern>[%d] %-5p %c - %m%n</pattern>
    </encoder>
  </appender>
  <root level="ERROR">
    <appender-ref ref="iamLogFileAppender"/>
  </root>

  <logger name="aero.sita.voyager.iam" level="${iam.upm.log.logLevel}" additivity="false">
    <appender-ref ref="iamLogFileAppender" />
 </logger>
</configuration>

所以我的想法是更改日志配置而无需重新部署。但由于weblogic在部署项目时无法找到该文件,因此我无法正常工作。我怎样才能改变

iam.config.file=resources/iam_config.properties

正确指向该文件。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用通用文件覆盖功能来打包应用程序外部的属性 http://download.oracle.com/docs/cd/E21764_01/web.1111/e13702/config.htm#i1066493 使用应用程序安装目录打包应用程序时 http://download.oracle.com/docs/cd/E21764_01/web.1111/e13702/deployunits.htm#i1047223

请注意,这需要您使用ContextClassLoader查找此类属性,如果您希望在不重新部署的情况下读取文件,则可能必须在部署期间使用无阶段或外部阶段模式而不是分阶段:< / p>

Properties myAppProps = new Properties();
InputStream iostream = Thread.currentThread().getContextClassLoader().getResourceAsStream("myCfg/myApp.properties");
myAppProps.load(iostream);