Log Filter Construction

You can define and compose filters to form a log fetching pattern. All the filters are subclasses of FieldFilter. There are two types of filters: those that act directly on log fields, and those that connect other filters.

These are the supported filters in FieldFilter for server logging:

You cannot directly instantiate filters through a new operator. You must acquire them by calling methods of SUPServerLog.

FieldEqualityFilter host_eq = supServerLog.getFieldEqualityFilter(
		LOG_FIELD.HOST_NAME, "hel-xp");
FieldRangeFilter time_range = supServerLog.getFieldRangeFilter(
		LOG_FIELD.TIMESTAMP, new Date(0), new Date());
FieldRegexpFilter regexp = supServerLog.getFieldRegexpFilter(
		LOG_FIELD.THREAD_NAME, "^RMI");
FieldSetFilter domain_set = supServerLog.getFieldSetFilter(
		LOG_FIELD.DOMAIN_NAME, Arrays.asList(new String[] { "default",
				"test" }));
FieldWildcardFilter user_wild = supServerLog.getFieldWildcardFilter(
		LOG_FIELD.USER_NAME, "user*");

LogicalNotFilter notFilter = supServerLog.getLogicalNotFilter(host_eq);
LogicalOrFilter orFilter = supServerLog.getLogicalOrFilter(Arrays
		.asList(new FieldFilter[] { time_range, regexp }));
LogicalAndFilter andFilter = supServerLog.getLogicalAndFilter(Arrays
		.asList(new FieldFilter[] { domain_set, user_wild }));

FieldFilter filter = supServerLog.getLogicalAndFilter(Arrays
		.asList(new FieldFilter[] { notFilter, orFilter, andFilter }));