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 bucket_eq = supServerLog.getFieldEqualityFilter(
		SERVER_LOG_FIELD.BUCKET, "MMS");

FieldSetFilter thread_set = supServerLog.getFieldSetFilter(
		SERVER_LOG_FIELD.THREAD_NAME, Arrays.asList(new String[] {
				"main", "dispatcher" }));

FieldWildcardFilter logger_wild = supServerLog.getFieldWildcardFilter(
		SERVER_LOG_FIELD.LOGGER_NAME, "com.sybase.sup*");

FieldRangeFilter time_range = supServerLog.getFieldRangeFilter(
		SERVER_LOG_FIELD.TIMESTAMP, new Date(0), new Date());
FieldRegexpFilter regexp = supServerLog.getFieldRegexpFilter(
		SERVER_LOG_FIELD.THREAD_NAME, "^RMI");

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

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