1.Jboss的日志系统(standalone模式) 在介绍案例分析之前先来介绍一下Jboss提供的日志系统,下载EAP的zip包解压后的结构如下:

在standalone目录下有两个文件standalone.xml和logging.properties,eap启动时会读取并解析standalone.xml文件。

在standalone.xml这份配置文件中有关于日志子系统的相关配置,基本结构如下所示:        <subsystem xmlns="urn:jboss:domain:logging:1.3">            <console-handler name="CONSOLE">                <level name="DEBUG"/>                <formatter>                    <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>                </formatter>            </console-handler>            <periodic-rotating-file-handler name="FILE" autoflush="true">                <formatter>                    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>                </formatter>                <file relative-to="jboss.server.log.dir" path="server.log"/>                <suffix value=".yyyy-MM-dd"/>                <append value="true"/>            </periodic-rotating-file-handler>            <logger category="com.arjuna">                <level name="WARN"/>            </logger>            <logger category="org.apache.tomcat.util.modeler">                <level name="WARN"/>            </logger>            <logger category="org.jboss.as.config">                <level name="DEBUG"/>            </logger>            <logger category="sun.rmi">                <level name="WARN"/>            </logger>            <logger category="jacorb">                <level name="WARN"/>            </logger>            <logger category="jacorb.config">                <level name="ERROR"/>            </logger>            <root-logger>                <level name="DEBUG"/>                <handlers>                    <handler name="CONSOLE"/>                    <handler name="FILE"/>                </handlers>            </root-logger>        </subsystem> 在eap解析到这个subsystem之前,jboss会使用logging.properties中的配置进行日志输出,一旦eap解析完成这个subsystem就会由其来接管日志输出这项工作,另外如果subsystem中的内容被修改,则其修改会被反应到logging.properties中,因而修改日志配置,最好是修改subsystem中的内容而不是logging.properties。 logging subsystem中的日志配置有多种模式,下面给出三种: console-handler 控制台显示 periodic-rotating-file-handler 定期新建一个log文件 size-rotating-file-handler 满足指定大小就重新新建一个log文件

2. 案例分析 在实际部署运行的系统经常是跑在物理机的一个虚拟机中,而且应用服务器(例如Jboss)通常不会只有一个war包而是会有多个,如果使用subsystem的日志输出方式,日志输出会杂在一起,对排查问题没有多大帮助,反而会让人找不到方向,最好是能够让war包自己管理自己的日志输出(当然是在单机模式下,如果是集群的话还是交给Jboss吧),这样不仅便于我们修改日志配置(总是感觉修改jboss的subsystem不是那么方便),还能得到特定应用的全部日志输出。 经过一番搜索找到了一个解决方案,通过一个启动参数关闭Jboss对日志的托管 <span style="white-space:pre"> </span>-Dorg.jboss.as.logging.per-deployment=false 将其加入jre的启动参数中,eap启动时会检测这个参数,如果其值为false则关闭对应用日志的接管,这样应用就可以控制自己的日志输出了。有两种方式来使用这个参数,一个是利用eap的启动过程(就是其启动脚本)中加载的配置,在其中加入对这个参数的使用,另一个是写一个脚本控制jre与eap的启动。 (1)利用eap的启动配置

在standalone.conf中添加下面这一行 <span style="white-space:pre"> </span>JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.as.logging.per-deployment=false"

(2)jre启动脚本 在linux系统中使用shell脚本控制jre以及eap的启动是很方便的,写一个这样的脚本在jre的启动命令中添加上述参数就可以实现将应用自己控制log的输出,脚本样本如下: kill -9 `ps aux | grep -v 'awk' |awk '/jboss-eap-6.2/{print $2}'`echo 'kill jboss service'rm -rf ./*.logrm -rf ./nohup.outecho 'clean log files'rm -rf /usr/jboss/jboss-eap-6.2/standalone/tmp/vfs/rm -rf /usr/jboss/jboss-eap-6.2/standalone/tmp/work/echo 'clean tmp workspace'/bin/cp -f ./example.war /usr/jboss/jboss-eap-6.2/standalone/deployments/echo 'copy ams.war to workspace'sleep 1snohup /usr/jboss/jboss-eap-6.2/bin/standalone.sh -Dorg.jboss.as.logging.per-deployment=false -b 192.168.2.160 &echo 'start nohup job'sleep 1stail -f ./nohup.out使用脚本启动时,需要注意如果当前系统中已经运行了一个Jboss服务了则需要先清除(关闭或者杀掉进程)之前的服务,然后如果有必要可以清除之前应用生成的log文件,如果不希望之前应用的缓存对新的应用造成影响,可以把Jboss的缓存清空,之后就可以将war包拷贝到Jboss的deployments目录下,拷贝完成后进行jre及eap的启动,使用nohup命令进行任务托管,并附上控制log托管的参数配置,脚本执行到这里,如果想要观察启动的过程可以使用tail命令监控nohup的输出,脚本运行过程基本就是这个流程,当然也可以添加其它的条件判断比如war包是否存在等。 --------------------- 作者:北海飞舞 来源:CSDN 原文:https://blog.csdn.net/liupin_2011/article/details/42388907?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

Jboss7或者wildfly部署war包的问题 1的更多相关文章

  1. Jboss7或者wildfly部署war包的问题

    如果在Jboss7或者wildfly中部署war包是遇到类似如下错误: "{"JBAS014671: Failed services" => {"jbos ...

  2. tomcat本地部署war包的方式

    最近学习java,在本地tomcat部署时,主要采取以下方式: 一.本地构建生成war包 在本地项目中的terminal下,使用命令 “mvn clean install”或 先执行“mvn clea ...

  3. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

    Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...

  4. Docker容器Tomcat部署war包

    在docker容器中使用tomcat部署war包主要包括四个步骤,创建tomcat容器.上传war包到容器.重启容器.访问应用. 1.创建tomcat容器 使用docker run  -d --nam ...

  5. 持续集成之Jenkins自动部署war包到远程服务器

    一.无war包链接的情况 无war包链接时,需先下载war包到本地,然后执行: ---------------------------------------------以下部分为转载-------- ...

  6. weblogic安装部署war包——windows

    ### weblogic安装部署war包——windows#### 下载weblogic安装包[csdn下载地址](https://download.csdn.net/download/luozhua ...

  7. tomcat快速部署War包操作

    Linux快速部署War包操作,暂时是最简单的操作 1.先关闭Tomcat /home/java/tomcat7/bin/shutdown.sh 2.进入War包存放目录(可以通过工具:SSH Sec ...

  8. 如何在阿里云上部署war包到tomcat服务器

    一. 准备工作:xshell和xftp 首先我们得确保,xshell能够远程连接阿里云ECS,xftp能够保证windows和linux之间的文件传输(当然也可以选择FileZilla,但xftp感觉 ...

  9. 如何在windows上部署war包到tomcat服务器

    一. 什么是war包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将很多文件组合成一个压缩文件.war专用在web方面,一个war包可以理解为一个web项 ...

随机推荐

  1. 【Java初探外篇02】——关于静态方法与实例方法

    在Java的学习中,我们知道,方法的使用是不可或缺的重要部分,在我们编写第一个Java程序hello world的时候,我们就要开始使用主方法main():它就是一个静态方法(static metho ...

  2. 如果非得了解下git系统... - 实践篇

    git的定义是一个内容寻址文件系统.内容.寻址.文件.系统,该来的总会来的… 本文旨在通过实践来介绍.git文件夹中的目录及文件功能,属git基础知识.但在此基础上可解决各git使用过程中可能遇到的问 ...

  3. j2ee高级开发技术课程第十四周

    RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果.这个请求包括一个参数集和一个文本集,通常形成“cl ...

  4. dhcp服务器(一)

    DHCP服务概述: 名称:DHCP -Dynamic Host Configuration Protocol动态主机配置协议. 功能:DHCP(Dynamic Host Configuration P ...

  5. Supervisod的使用

    原文链接:http://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyth ...

  6. 大佬带你深入浅出Lua虚拟机

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:郑小辉 | 腾讯 游戏客户端开发高级工程师 写在前面:本文所有的文字都是我手工一个一个敲的,以及本文 ...

  7. Go的基本类型与变量

    基本类型 布尔型:bool 长度:1字节 取值范围:true,false 注意:不可以用数字代表true或false 整型:int/uint 根据运行平台可能为32或64位 8位整型:int8/uin ...

  8. Trace & Error log in file

    1. Log机制 做一些大型项目的时候,对代码的调试最有效的办法往往是最直接.最简单的log机制: 即对可以出设置打印店,对应打印信息进行调试(当然是有gdb也许你会觉得很高大上,但是实际项目中,gd ...

  9. 使用WPF教你一步一步实现连连看(三)

    这次首先对以前的结构进行了调整: 第一步:把MyButton按钮的属性独立成一个类,放在一个单独的MyButton.cs中,把图片的初始化也放到里面. 调整代码如下: public class MyB ...

  10. hive 中的正则表达式

    背景: 前几天拿来apache日志,用hive的正则进行匹配,发现匹配出来的字段算是NULL,但是我用RegexBuddy工具显示能够匹配的到啊!例子如下(我拿正常的apache日志来比较,我的apa ...