以独立于平台的方式在Websphere中指定日志文件位置

时间:2010-09-03 07:50:00

标签: log4j websphere

在Websphere 7.0上使用Log4J RollingFileAppender时,如何在log4j.properties文件中指定日志记录目录的位置,即选择Websphere的LOG_ROOT变量?

2 个答案:

答案 0 :(得分:4)

您可以选择指定可以使用WebSphere变量的JVM Custom属性。

JVM Custom属性可以在log4j.properties中使用。

在下面找到有关实现相同目标的一些说明:

在管理控制台中,路径为:

应用程序服务器>您的服务器名称>过程定义> Java虚拟机>自定义属性

Customer属性可以使用WebSphere变量作为我们的自定义属性的值 - KeyForMyCustomProperty。 WebSphere变量将使用标准模式:$ {}

E.g $ {MY_VARIABLE}

log4j属性文件可以通过

访问此自定义属性

log4j.appender.messageAppender.File = <强> $ {KeyForMyCustomProperty} /Message.log

这种方法并不简单,但可以达到预期的效果。您可以选择将相同的密钥用作JVM定制属性的WebSphere变量,然后它显示为 - 如果在log4j.properties中使用了WebSphere变量

HTH Manglu

答案 1 :(得分:1)

当然,编写RollingFileAppender的自定义子类非常简单,它以与平台无关的方式以编程方式确定LOG_ROOT变量值。

如果是这样的话,可能只需要十几行代码。然后跟进,

    <appender name="CustomAppender" class="path.to.your.CustomAppender">
            <param name="File" value="fileNameOnly.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%m%n" />
            </layout>
    </appender>

让子类接受File参数,派生LOG_ROOT路径,并在调用超类方法之前将其附加到文件名。

我希望在某种程度上有所帮助,

-gMale