首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

LOG4J对单服务器多SERVER的集群服务的日记输出支持

2012-11-15 
LOG4J对单服务器多SERVER的集群服务的日志输出支持增加LOG4J对单服务器多SERVER的集群服务的日志输出支持

LOG4J对单服务器多SERVER的集群服务的日志输出支持
增加LOG4J对单服务器多SERVER的集群服务的日志输出支持
问题:在单台物理服务器上部署的集群中含有多个Server Application时,发布的应用只有一个 WAR包,对应的LOG4J的配置也仅有一个,多个Server Application同时将输出的日志文件写入到一个文件中,会造成日志的丢失,因此设计该方法是为了多个Server Application分别输出各自的日志文件.

思路:
1.log4j的配置文件支持System Property的环境变量的获取,如user home
2.通过ServletContext可以获取到集群中每个server name
3.在不同的server启动时将不同server name的加载到System Property
4.在配置文件中增加一个${WebAppClusterServer}的参数,拼合server_name+logfile_name
5.配置文件的定义:
**************************************************
*logpath=e:/${WebSphereAppHost}_
*log4j.appender.logfile.File=${logpath}test.log
**************************************************

这是思路,需要源码的可以EMAIL我
源码是基于org.springframework.util.Log4jConfigurer进行改造


   <context-param>       <param-name>log4jExposeWebAppCluster</param-name>       <param-value>WebSphere</param-value>   </context-param>   <context-param>       <param-name>log4jExposeWebAppClusterAttribute</param-name>       <param-value>com.ibm.websphere.servlet.application.host</param-value>   </context-param><servlet><servlet-name>Log4jConfigServlet</servlet-name><display-name>Log4jConfigServlet</display-name><servlet-class>com.xxxxx.log4j.web.Log4jConfigServlet</servlet-class><load-on-startup>4</load-on-startup></servlet>


1 楼 sunman5277 2012-07-10   我在部署weblogic集群时也遇到和你相同的问题,1个服务器部署了4个server,请问你具体是怎么解决的?望不吝赐教

热点排行