【问题标题】:How to disabled logging stdout for apache commons daemon (Procrun)?如何禁用 apache commons 守护进程(Procrun)的日志记录标准输出?
【发布时间】:2015-07-21 11:43:13
【问题描述】:

我正在使用 apache commons daemon tool Procrun 将 java 命令行工具安装为 Windows 服务。

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

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

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

【问题讨论】:

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

标签: java apache-commons procrun


【解决方案1】:

您可以通过在 --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 ^

【讨论】:

    【解决方案2】:

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

    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%
    

    【讨论】:

      【解决方案3】:

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

      1. 通过Services

        停止你的apache服务
      2. 以管理员身份打开命令提示符 (cmd)

      3. 导航到您的 tomcat exe 文件位置,即

        cd D:\MyApplication\Apache-Tomcat\bin\

      4. 在命令下运行

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

      5. 通过Services

        启动你的apache服务

      【讨论】:

        猜你喜欢
        • 2011-08-15
        • 1970-01-01
        • 2016-09-24
        • 2010-09-14
        • 2019-06-02
        • 2011-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多