首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Websphere集群环境中Log4j日志的分离

Websphere集群环境中Log4j日志的分离
EN

Stack Overflow用户
提问于 2013-02-15 06:32:43
回答 1查看 1.8K关注 0票数 3

我们正在使用Log4j登录我们的web应用程序。我们的应用程序部署在Websphere集群环境中。

例如:

有一个主机有两个不同的JVM,其中部署了web应用程序。

代码语言:javascript
复制
Host-1      
  JVM -1 [App-1, App-2]
  JVM -2 [App-1, App-2]

用于Log4j App-1的配置如下:

代码语言:javascript
复制
<log4j:configuration debug="true">
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
        <appender-ref ref="FileOut" />
    </appender>
    <appender name="FileOut" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/home/applogs/app-1.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <param name="Append" value="true" />
        <param name="MaxFileSize" value="10MB" />
        <param name="MaxBackupIndex" value="5" />
        <param name="Threshold" value="ALL" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d %-5p - %m%n" />
        </layout>
    </appender>   
    <root>
        <level value="INFO" />
        <appender-ref ref="ASYNC" />
    </root>    
</log4j:configuration>

但是这里的问题是不同的JVM日志是在同一个文件/home/applogs/app-1.log.中编写的。

是否有任何方法为群集环境配置单独的日志文件?如果我们在1JVM或2个JVM或3个JVM中部署应用程序,那么我的Log4j配置就不应该更新了?

EN

回答 1

Stack Overflow用户

发布于 2013-03-08 19:44:32

您可以使用ManagementFactory.getRuntimeMXBean().getName()在运行时查找JVM的ProcessID以获得唯一的fileName,然后需要在记录器的运行时以某种方式更新fileName。看看this Answer就可以做到这一点。完整:

添加到主方法中:

代码语言:javascript
复制
//set a property to the JVM-Name
System.setProperty("logFilename", ManagementFactory.getRuntimeMXBean().getName());
//update the Logger context to relead the filename with the lookup
LoggerContext ctx =  (LoggerContext) LogManager.getContext(false);
ctx.reconfigure();

在您的log4j2.xml中使用一个带有文件名查找的Appender:

代码语言:javascript
复制
<appenders>
<File name="MyFile" fileName="${sys:logFilename}.log">
    <PatternLayout pattern="%-4r %d{${datestamp}} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</appenders>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14889426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档