2014-06-14 79 views
0

我已经根据this guide安装了Jboss 7.1.1.Final作为窗口服务。Jboss 7日志问题

一切工作正常,除了日志。这似乎是一切都被记录了两次!首先在名为server.log的文件中,然后在名为standalone.log的文件中。

server.log文件每天整齐地重命名,所以我在任何给定的一天都得到1个小日志文件(server.log.2014-06-12,server.log.2014-06-13等等... ),每个文件不超过20MB。

standalone.log另一方面越来越大,所以当它达到3GB的应用程序崩溃,我必须手动重新启动它。

如何防止Jboss登录到此standalone.log

我发现这个文件我用注册的Windows服务service.bat一定的参考,所以我发布这个文件波纹管的完整内容:

@echo off 
REM JBoss, the OpenSource webOS 
REM 
REM Distributable under LGPL license. 
REM See terms of license at gnu.org. 
REM 
REM ------------------------------------------------------------------------- 
REM JBoss Service Script for Windows 
REM ------------------------------------------------------------------------- 


@if not "%ECHO%" == "" echo %ECHO% 
@if "%OS%" == "Windows_NT" setlocal 
set DIRNAME=%CD% 

REM 
REM VERSION, VERSION_MAJOR and VERSION_MINOR are populated 
REM during the build with ant filter. 
REM 
set SVCNAME=JBAS50SVC 
set SVCDISP=JBoss 7 
set SVCDESC=JBoss 7.1.1 
set NOPAUSE=Y 

REM Suppress killing service on logoff event 
REM set JAVA_OPTS=-Xrs 

REM Figure out the running mode 

if /I "%1" == "install" goto cmdInstall 
if /I "%1" == "uninstall" goto cmdUninstall 
if /I "%1" == "start"  goto cmdStart 
if /I "%1" == "stop"  goto cmdStop 
if /I "%1" == "restart" goto cmdRestart 
if /I "%1" == "signal" goto cmdSignal 
echo Usage: service install^|uninstall^|start^|stop^|restart^|signal 
goto cmdEnd 

REM jbosssvc retun values 
REM ERR_RET_USAGE   1 
REM ERR_RET_VERSION   2 
REM ERR_RET_INSTALL   3 
REM ERR_RET_REMOVE   4 
REM ERR_RET_PARAMS   5 
REM ERR_RET_MODE   6 

:errExplain 
if errorlevel 1 echo Invalid command line parameters 
if errorlevel 2 echo Failed installing %SVCDISP% 
if errorlevel 4 echo Failed removing %SVCDISP% 
if errorlevel 6 echo Unknown service mode for %SVCDISP% 
goto cmdEnd 

:cmdInstall 
jbosssvc.exe -imwdc %SVCNAME% "%DIRNAME%" "%SVCDISP%" "%SVCDESC%" service.bat 
if not errorlevel 0 goto errExplain 
echo Service %SVCDISP% installed 
goto cmdEnd 

:cmdUninstall 
jbosssvc.exe -u %SVCNAME% 
if not errorlevel 0 goto errExplain 
echo Service %SVCDISP% removed 
goto cmdEnd 

:cmdStart 
REM Executed on service start 
del .r.lock 2>&1 | findstr /C:"being used" > nul 
if not errorlevel 1 (
    echo Could not continue. Locking file already in use. 
    goto cmdEnd 
) 
echo Y > .r.lock 
jbosssvc.exe -p 1 "Starting %SVCDISP%" > C:\Web\jboss-as-7.1.1.Final\standalone\log\standalone.log 
call standalone.bat --server-config=standalone.xml <.r.lock>> C:\Web\jboss-as-7.1.1.Final\standalone\log\standalone.log 2>&1 
jbosssvc.exe -p 1 "Shutdown %SVCDISP% service" >> C:\Web\jboss-as-7.1.1.Final\standalone\log\standalone.log 
del .r.lock 
goto cmdEnd 

:cmdStop 
REM Executed on service stop 
echo Y > .s.lock 
jbosssvc.exe -p 1 "Shutting down %SVCDISP%" > C:\Web\jboss-as-7.1.1.Final\standalone\log\shutdown.log 
call jboss-cli.bat --connect command=:shutdown >> C:\Web\jboss-as-7.1.1.Final\standalone\log\shutdown.log 2>&1 
jbosssvc.exe -p 1 "Shutdown %SVCDISP% service" >> C:\Web\jboss-as-7.1.1.Final\standalone\log\shutdown.log 
del .s.lock 
goto cmdEnd 

:cmdRestart 
REM Executed manually from command line 
REM Note: We can only stop and start 
echo Y > .s.lock 
jbosssvc.exe -p 1 "Shutting down %SVCDISP%" >> C:\Web\jboss-as-7.1.1.Final\standalone\log\shutdown.log 
call jboss-cli.bat --connect command=:shutdown >> C:\Web\jboss-as-7.1.1.Final\standalone\log\shutdown.log 2>&1 
del .s.lock 
:waitRun 
REM Delete lock file 
del .r.lock > nul 2>&1 
REM Wait one second if lock file exist 
jbosssvc.exe -s 1 
if exist ".r.lock" goto waitRun 
echo Y > .r.lock 
jbosssvc.exe -p 1 "Restarting %SVCDISP%" >> C:\Web\jboss-as-7.1.1.Final\standalone\log\standalone.log 
call standalone.bat --server-config=standalone.xml <.r.lock>> C:\Web\jboss-as-7.1.1.Final\standalone\log\standalone.log 2>&1 
jbosssvc.exe -p 1 "Shutdown %SVCDISP% service" >> C:\Web\jboss-as-7.1.1.Final\standalone\log\standalone.log 
del .r.lock 
goto cmdEnd 

:cmdSignal 
REM Send signal to the service. 
REM Requires jbosssch.dll to be loaded in JVM 
@if not ""%2"" == """" goto execSignal 
echo Missing signal parameter. 
echo Usage: service signal [0...9] 
goto cmdEnd 
:execSignal 
jbosssvc.exe -k%2 %SVCNAME% 
goto cmdEnd 

:cmdEnd 

回答

1

我能够实现我想要的东西通过编辑standalone.xml配置文件。

这一部分:

<root-logger> 
     <level name="INFO"/> 
     <handlers> 
      <handler name="CONSOLE"/> 
      <handler name="FILE"/> 
     </handlers> 
    </root-logger> 

改成这样:

<root-logger> 
     <level name="INFO"/> 
     <handlers> 
      <handler name="FILE"/> 
     </handlers> 
    </root-logger> 
0

如果你看一下脚本(standalone.bat)你会看到stdout被重定向到standalone.log文件。您可以禁用控制台处理程序,该处理程序应防止将任何内容记录到文件中。

从根记录删除默认console-handler

/subsystem=logging/root-logger=ROOT:root-logger-unassign-handler(name=CONSOLE) 
+0

感谢詹姆斯。对不起,我的经验不足,但我应该在哪个文件寻找根记录器? –

+0

他们是一样的。如果你做了一个'/ subsystem = logging/root-logger = ROOT:read-resource',你会看到一个CONSOLE和FILE处理程序已被分配。本质上你的CONSOLE只是被重定向到一个文件。 –