Glassfish服务日志文件无限增长

时间:2014-03-11 17:52:16

标签: logging glassfish

我们的应用程序在Glassfish 3.1.2.2上运行。我们注意到以下日志文​​件不受限制地增长:

C:\glassfish3\glassfish\domains\domain1\bin\domain1ServiceService.err.log

这个文件似乎只是回显了也进入主server.log文件的正常日志记录。所以我认为这完全是多余的,没有必要。问题是,在几天的过程中,它的大小增加到15 GB以上,并最终消耗驱动器上的所有剩余空间,这给Glassfish(和Windows)带来了很多问题。

如何阻止Glassfish生成此文件,或者至少限制其大小?

2 个答案:

答案 0 :(得分:1)

GlassFish在Windows上使用winsw作为服务日志记录实现。

您可以在文件(domain)service.xml中配置日志记录,在您的情况下应该是:

C:\glassfish3\glassfish\domains\domain1\bin\domain1ServiceService.xml

您可以设置不同的日志模式。默认设置是在服务器重新启动之前附加到文件。

您可以在此行中更改日志模式:

<logmode>reset</logmode>

roll,这将在服务器重启时轮换日志文件。遗憾的是,您无法在服务器运行时将其配置为resetroll日志文件,仅在服务器启动/重新启动时。

作为解决方法,您可以通过从此行中删除--verbose来关闭日志记录:

  <startargument>--verbose</startargument>

这将关闭日志记录,但这也会导致microsof服务控件无法与GlassFish 正常通信,例如您可以通过服务控制启动服务器,但无法阻止它,您必须手动终止该过程。

另见:

答案 1 :(得分:1)

我正在使用glassfish 3.1.2.2并遇到此问题。我的解决方案是使用1.16版本的winsw替换已部署的应用程序中glassfish(winsw的早期版本)提供的服务包装器,并将其配置为使得winsw不生成任何日志文件(除了包装日志,在我的情况下很小) )。我从这里下载了winsw:

http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/1.16/

<强>步骤:

如果服务正在运行,请停止该服务。

替换服务exe(作为示例,我替换了这个文件: C:\ glassfish3 \ GlassFish的\域\ myServices \ BIN \ myServicesService.exe) 使用1.16版本的winsw(当然必须重命名该文件)。

然后打开文件xxxService.xml (例如C:\ glassfish3 \ glassfish \ domains \ myServices \ bin \ myServicesService.xml) 并通过设置

更改日志模式
<logmode>none</logmode>

(来自<logmode>reset</logmode>这是默认的)

还添加此版本winsw所需的<stopexecutable>节点。复制<executable>标记中的值。这是一个例子:

<stopexecutable>C:/glassfish3/glassfish/bin/asadmin.bat</stopexecutable>

最后启动服务。