如何阻止Jenkins日志变得庞大?

时间:2015-07-30 09:16:27

标签: jenkins

最近,我的jenkins.log开始变得非常庞大,非常快,充满了关于DNS解析的例外。我试图使用logrotate,但是日志文件增长得太快甚至不能旋转,只是占用了我所有的磁盘空间,这会导致各种服务失败,因为它们不能再写文件了。

我该如何避免?

6 个答案:

答案 0 :(得分:39)

您可以通过调整Jenkins中的日志记录设置来禁用这些DNS错误的记录。

从Jenkins网络界面转到:

 Manage Jenkins -> System Log -> Log Levels (on the left)

添加以下条目:

Name: javax.jmdns

Level: off

这样,您可以保留多播DNS功能,但不包含所有日志记录数据。

答案 1 :(得分:23)

这似乎是由于DNS多播,如下所述:https://issues.jenkins-ci.org/browse/JENKINS-25369

解决方法:将-Dhudson.DNSMultiCast.disabled=true添加到JAVA_ARGS

PS:我在Stack Overflow上回答了我自己的问题,因为我无法轻易地在Google上找到答案,而且对其他运行Jenkins的人也很有用。

答案 2 :(得分:3)

修改/etc/default/jenkins中的JAVA_ARGS(至少安装Debian / Ubuntu的位置)以禁用DNS多播功能。

更改此内容:JAVA_ARGS="-Djava.awt.headless=true"

对此:JAVA_ARGS="-Djava.awt.headless=true -Dhudson.DNSMultiCast.disabled=true"

然后重新启动服务service jenkins restart

答案 3 :(得分:3)

您可以使用Jenkins主文件夹中的init.groovy文件插入Jenkins初始化,并使用它永久更改日志记录级别。即使Jenkins重新启动,也会保留更改。 该文件有一个简单的内容:

import java.util.logging.Level
import java.util.logging.Logger

Logger.getLogger("").setLevel(Level.SEVERE)
Logger.getLogger("org.apache.sshd").setLevel(Level.SEVERE)
Logger.getLogger("winstone").setLevel(Level.SEVERE)

您可以更改记录器的名称和级别,以使其符合您的需要。有关详细信息,请参阅my article on this topic

答案 4 :(得分:0)

对于使用Centos / Redhat的服务器,可以在/ etc / sysconfig / jenkins中找到禁用DNS多播功能的选项

JENKINS_JAVA_OPTIONS="-Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=-1 -Djava.awt.headless=true"

答案 5 :(得分:0)

就我而言,每当通过用户界面拒绝登录尝试时,我都会收到日志条目。

用户身份验证通过LDAP完成,并且提供的用户/密码元组正确。一段时间后,登录尝试仍然有效。

是否可能由于启用了DNS Multi Cast功能而拒绝了用户?