Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为apache commons守护程序(ProLUN)禁用日志记录标准输出?_Java_Apache Commons_Procrun - Fatal编程技术网

Java 如何为apache commons守护程序(ProLUN)禁用日志记录标准输出?

Java 如何为apache commons守护程序(ProLUN)禁用日志记录标准输出?,java,apache-commons,procrun,Java,Apache Commons,Procrun,我正在使用ApacheCommons守护程序工具prorun将java命令行工具安装为windows服务 java工具在运行期间在控制台上显示大量内容。任何sysout都将由守护程序工具自动记录到日志文件中。只要服务正在运行,就无法删除此文件 问题:我的服务和应用程序几乎不应该重新启动。这会导致每月数百GB的守护进程StdOutputlogfile,我只能先停止应用程序手动清除 问题:是否可以禁用此服务日志记录?通过从配置脚本中省略--StdOutput和--StdError参数的文件名,可以避

我正在使用ApacheCommons守护程序工具
prorun
将java命令行工具安装为windows服务

java工具在运行期间在控制台上显示大量内容。任何sysout都将由守护程序工具自动记录到日志文件中。只要服务正在运行,就无法删除此文件

问题:我的服务和应用程序几乎不应该重新启动。这会导致每月数百GB的守护进程
StdOutput
logfile,我只能先停止应用程序手动清除


问题:是否可以禁用此服务日志记录?

通过从配置脚本中省略
--StdOutput
--StdError
参数的文件名,可以避免将stdout和stderr写入文件。我在v1.0.15.0中使用了这个

例如:

D:\prunsrv.exe //IS//SomeService ^
--DisplayName="SomeService" ^
--Description="Some Procrun Service" ^
--Startup=auto ^
--Install=%CD%\prunsrv.exe ^
--Jvm=%JAVA_HOME%\jre\bin\server\jvm.dll ^
--Classpath=%CD%\MyApplication-SNAPSHOT.jar; ^
--StartMode=jvm ^
--StartClass=com.myDomain.bootstrap ^
--StartMethod=start ^
--StartParams=start ^
--StopMode=jvm ^
--StopClass=com.myDomain.bootstrap ^
--StopMethod=stop ^
--StopParams=stop ^
--StdOutput= ^
--StdError= ^
--LogPath=%CD%\logs ^
--LogLevel=Debug ^

对我来说,最佳实践是批处理文件,这对我来说非常简单:

installService.bat

REM Main
set SERVICE_NAME=MyService
set PR_DESCRIPTION=My Description
set PR_INSTALL=C:\procrun-sample-master\prunsrv.exe
set PR_STARTUP=auto

REM Java
set PR_JVM=%JAVA_HOME%\bin\server\jvm.dll
set PR_CLASSPATH=myservice.jar

REM LOG disabled
set PR_LOGPATH=C:\procrun-sample-master\log
set PR_STDOUTPUT=
set PR_STDERROR=
set PR_LOGLEVEL=Warn

REM Start Config
set PR_STARTUP=auto
set PR_STARTMODE=jvm
set PR_STARTCLASS=package.Classname
set PR_STARTMETHOD=start

REM Stop Config
set PR_STOPMODE=jvm
set PR_STOPCLASS=package.Classname
set PR_STOPMETHOD=stop

REM Install
prunsrv.exe //IS//%SERVICE_NAME%

通过以下步骤解决了此问题。

  • 通过服务停止apache服务

  • 以管理员身份打开命令提示符(cmd)

  • 导航到您的tomcat exe文件位置

    cd D:\MyApplication\Apache Tomcat\bin\

  • 在命令下面运行

    tomcat7.exe//US//JasperGenDoc--StdOutput=

  • 通过服务启动apache服务


  • 您是否尝试在配置文件中设置更高的日志记录级别?好的,这可能是第一个解决方法。无论如何,它不会禁用标准输出。