Filtering WebLogic log messages

There is a ton of documentation online on how to create WebLogic log filters. In this blog post, I describe how to easily filter out a repeating error that appears to be harmless.

What harm is there keeping these entries in the log file? Why are we filtering them out and not maintaining them instead? Because our OEM Agent was picking up these "Emergency" entries and repeatedly emailing out alerts.

The error message, which occurred 0-10 times daily, that appeared in the bi_server1.out log file is:

<Feb 6, 2020, 3:37:06,362 PM EST> <Emergency> <oracle.dfw.incident> <BEA-000000> <incident 899 created with problem key "DFW-99998 [java.io.IOException][oracle.bi.security.filter.BISecurityFilter.handleAnonymousSubject][analytics]">

Create a Filter to Suppress Logging of the DFW-99998 Error

  1. Login to the WebLogic Admin Console.
  2. Click on the domain name on the top-left.
  3. Navigate to Configuration > Log Filters.
  4. Click on New.
  5. Enter a filter name. For example: LogFilter-Suppress-DFW99998.
  6. Click on the filter name.
  7. Click on Edit, and enter a custom filter expression such as:
NOT (MESSAGE LIKE 'created with problem key "DFW-99998 [java.io.IOException][oracle.bi.security.filter.BISecurityFilter.handleAnonymousSubject][analytics]"')

It will look like this:

Assign the Filter to the Managed Server Log Files

  1. Navigate to the managed server. For example: bi_server1
  2. Navigate to Logging > General > Advanced.
  3. Assign the newly created filter to all log files as shown in the screenshot.

References