我在运行Ubuntu的虚拟机上使用tomcat 7。现在,我在catalina.out
有/var/lib/tomcat7/logs/catalina.out
个文件,大小超过20GB。我尝试首先通过this教程旋转日志文件。然后我发现它将在夜晚结束时监控它。即使手动启动服务也没什么用。所以我删除了文件,但是在我重新启动tomcat之后出现了。
然后,我尝试执行接受conf/logging.properties
所接受的答案.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
并更改以下行:
.handlers = 1catalina.org.apache.juli.FileHandler
到
catalina.out
这似乎已经工作了一分钟,至少在我重新启动虚拟机之前。一旦发生这种情况,我最终得到了另一个20GB var circles = d3.selectAll('circle')
var label = d3.select('svg').append('text')
.attr('transform', 'translate(' + [5,100] + ')')
var zOrders = {
IDs: circles[0].map(function(cv){ return cv.id; }),
xPos: circles[0].map(function(cv){ return cv.cx.baseVal.value; }),
yPos: circles[0].map(function(cv){ return cv.cy.baseVal.value; }),
radii: circles[0].map(function(cv){ return cv.r.baseVal.value; }),
customOrder: [3, 4, 1, 2, 5]
}
var setOrderBy = 'IDs';
var setOrder = d3.descending;
label.text(setOrderBy);
circles.data(zOrders[setOrderBy])
circles.sort(setOrder);
文件。
是否有一些经过验证的方法可以阻止文件超过5MB,或者只是限制文件?
答案 0 :(得分:-1)
As' Stefan'指出您可以使用标准java.util.logging.FileHandler
而不是Tomcat附带的标准。
默认情况下,org.apache.juli.FileHandler级别设置为ALL。您可以尝试提高处理程序日志级别以过滤调试类型消息组。
.handlers = 1catalina.org.apache.juli.FileHandler
1catalina.org.apache.juli.FileHandler.level=WARNING
#1catalina.org.apache.juli.FileHandler.level=OFF
否则,您似乎必须通过设置.filter
属性在处理程序上编写自定义过滤器和install it。
public class FileLengthFilter implements Filter {
private final File target;
private final long limit;
public FileLengthFilter() {
final String p = getClass().getName();
LogManager lm = LogManager.getLogManager();
String v = lm.getProperty(p + ".file");
target = new File(v == null ? "." : v);
v = lm.getProperty(p + ".limit");
long l;
try {
l = Long.parseLong(v);
} catch (RuntimeException re) {
l = 5L * 1024L * 1024L;
}
this.limit = l;
}
@Override
public boolean isLoggable(LogRecord record) {
try {
return target.length() <= limit;
} catch (RuntimeException se) {
return false;
}
}
}