8 Logging Custom WLST Commands

Use the logging commands to configure settings for log files and to view and search log files. Table 8-1 describes the different categories of logging commands.

For additional details about configuring and searching log files, see the chapter "Managing Log Files and Diagnostic Data" in the Oracle Fusion Middleware Administrator's Guide.

Note:

To use these logging custom WLST commands, you must invoke the WLST script from the Oracle Common home. See "Using Custom WLST Commands" in the Oracle Fusion Middleware Administrator's Guide.

Table 8-1 Logging Command Categories

Command category Description

Log Configuration Commands

Configure settings for log files, such as the level of information written to the file or the maximum file size.

Search and Display Commands

View Oracle Fusion Middleware log files and search log files for particular messages.


Log Configuration Commands

Use the commands in Table 8-2 to configure settings for log files, such as the level of information written to the file or the maximum file size. In the Use with WLST column, online means the command can only be used when connected to a running server. Offline means the command can only be used when not connected to a running server. Online or offline means the command can be used in both situations.

Table 8-2 Logging Configuration Commands

Use this command... To... Use with WLST...

configureLogHandler

Configure an existing log handler, add a new handler, or remove existing handlers.

Online

getLogLevel

Get the level for a given logger.

Online

listLoggers

Get the list of loggers and the level of each logger.

Online

listLogHandlers

List the configuration of one of more log handlers.

Online

setLogLevel

Set the level for a given logger.

Online


configureLogHandler

Command Category: Log Configuration

Use with WLST: Online

Description

Configures an existing Java logging handler, adds a new handler, or removes an existing handler. It returns a java.util.List with one entry for each handler. Each entry is a javax.management.openmbean.CompositeData object describing the handler.

With this command, you can change the location of the log files, the frequency of the rotation of log files, and other log file properties.

Syntax

configureLogHandler(options)
Argument Definition
options
Comma-separated list of options, specified as name-value pairs. Valid options include:
  • target—The name of a WebLogic Server instance, or a string describing a system component. For system components, refer to the component's documentation for details.

    The default value is the server to which WLST is connected.

  • name—The name of a log handler. This option is required.

  • maxFileSize—The value of the maximum file size for an ODL handler. The value is a string representing a numeric value, optionally followed by a suffix indicating a size unit (k for kilobytes, m for megabytes, g for gigabytes).

    If you do not specify a suffix, the value is returned in bytes.

  • maxLogSize—The value of the maximum size of the log files for an ODL handler. The value is a string representing a numeric value, optionally followed by a suffix indicating a size unit (k for kilobytes, m for megabytes, g for gigabytes).

  • rotationFrequency—The value of the rotation frequency for an ODL handler. The value is a string representing a numeric value, optionally followed by a suffix indicating a time unit (m for minutes, h for hours, d for days). The default unit is minutes. The following special values are also accepted and are converted to a numeric value in minutes: HOUR, HOURLY, DAY, DAILY, WEEK, WEEKLY, MONTH, MONTHLY.

  • baseRotationTime—The base rotation time, to be used with the rotationFrequency option. The value must be a string representing a date/time value. It can be a full date/time in ISO 8601 date/time format, or a short form including only hours and minutes. The default baseRotationTime is 00:00.

  • retentionPeriod—The amount of time that the log file is retained. The value must be a string representing a numeric value, optionally followed by a suffix indicating a time unit (m for minutes, h for hours, d for days). The default unit is minutes. The following special values are also accepted and are converted to a numeric value in minutes: HOUR, HOURLY, DAY, DAILY, WEEK, WEEKLY, MONTH, MONTHLY.

  • format—The format for the ODL handler. Valid values are one of the following strings: "ODL-Text" or "ODL-XML". The default format is ODL-Text.

options (continued)
  • encoding—The character encoding for the log file.
  • path—The log file path.

  • handlerType—The name of the Java class that provides the handler implementation. It must be an instance of java.util.logging.Handler or oracle.core.ojdl.logging.HandlerFactory.

  • propertyName—The name of an advanced handler property to be added or updated. The property value is specified with the propertyValue option. See the documentation for the handler for valid properties.

  • propertyValue—The new value for the handler property defined by the propertyName option.

  • addProperty—A Jython boolean value. Used in conjunction with the propertyName and propertyValue options to define that a new property is to be added to the handler.

  • removeProperty—A list of one or more handler properties to be removed.

  • addHandler—A boolean value. If the value is true, then the named handler will be added.

  • removeHandler—A boolean value. If the value is true, then the named handler is removed.

  • level—A Java or ODL level value. The handler level will be set to the given level.

  • addToLogger—A list of logger names. The handler is added to the given logger names.

  • removeFromLogger—A list of logger names. The handler is removed from the given loggers.

  • useParentHandlers—A boolean value. Sets the useParentHandlers flag on the loggers defined by the addToLogger or removeFromLogger options.


Examples

The following example specifies the maximum file size for the odl-handler:

configureLogHandler(name="odl-handler", maxFileSize="5M")

The following example specifies the rotation frequency for the odl-handler:

configureLogHandler(name="odl-handler", rotationFrequency="daily")

The following example specifies the rotation frequency and the retention period for the odl-handler. It also removes the properties maxFileSize and maxLogSize:

configureLogHandler(name="odl-handler", rotationFrequency="daily", 
         retentionPeriod="week", removeProperty=['maxFileSize','maxLogSize'])

getLogLevel

Command Category: Log Configuration

Use with WLST: Online

Description

Returns the level of a given Java logger.

The returned value is a string with the logger's level, or None if the logger does not exist. An empty string indicates that the logger level is null.

Syntax

getLogLevel(options)
Argument Definition
options
Comma-separated list of options, specified as name-value pairs. Valid options include:
  • target—The name of a WebLogic Server instance, or a string describing a system component. For system components, refer to the component's documentation for details.

    The default value is the server to which WLST is connected.

  • logger—A logger name. An empty string denotes the root logger.

    This option is required and has no default.

  • runtime—A Jython boolean value (0 or 1) that determines if the operation is to list runtime loggers or config loggers. The default value is 1 (runtime).


Examples

The following example returns the level for the logger oracle:

getLogLevel(logger='oracle')

The following example returns the level for the logger oracle, specifying only config loggers:

getLogLevel(logger='oracle', runtime=0)

The following example returns the level for the logger oracle on the Oracle WebLogic Server server2:

getLogLevel(logger='oracle', target='server2')

listLoggers

Command Category: Log Configuration

Use with WLST: Online

Description

Lists Java loggers and their levels. The command returns a PyDictionary object where the keys are logger names and the associated values are the logger levels. An empty level is used to indicate that the logger does not have the level set.

Syntax

listLoggers([options])
Argument Definition
options
An optional comma-separated list of options, specified as name-value pairs. Valid options include:
  • target—The name of a WebLogic Server instance, or a string describing a system component. For system components, refer to the component's documentation for details.

    The default value is the server to which WLST is connected.

  • pattern—A regular expression pattern that is used to filter logger names. The default value returns all logger names.

  • runtime—A Jython boolean value (0 or 1) that determines if the operation is to list runtime loggers or config loggers. The default value is 1.


Examples

The following example lists all of the loggers:

listLoggers()

The following example lists all of the loggers that start with the name oracle.*.

listLoggers(pattern="oracle.*")

The following example list all config loggers:

listLoggers(runtime=0)

The following example list all loggers for the WebLogic Server server1:

listLoggers(target="server1")

listLogHandlers

Command Category: Log Configuration

Use with WLST: Online

Description

Lists Java log handlers configuration. This command returns a java.util.List with one entry for each handler. Each entry is a javax.management.openmbean.CompositeData object describing the handler.

Syntax

listLogHandlers([options])
Argument Definition
options
An optional comma-separated list of options, specified as name-value pairs. Valid options include:
  • target—The name of a WebLogic Server instance, or a string describing a system component. For system components, refer to the component's documentation for details.

    The default value is the server to which WLST is connected.

  • name—The name of a log handler. If the name is not provided, then all handlers are listed.


Examples

The following example lists all log handlers:

listLogHandlers()

The following example lists all log handlers named odl-handler:

listLogHandlers(name="odl-handler")

The following example lists all log handlers for the WebLogic Server server1:

listLogHandlers(target="server1")

setLogLevel

Command Category: Log Configuration

Use with WLST: Online

Description

Sets the level of information written by a given Java logger to a log file.

Syntax

setLogLevel(options)
Argument Definition
options
Comma-separated list of options, specified as name-value pairs. Valid options include:
  • target—The name of a WebLogic Server instance, or a string describing a system component. For system components, refer to the component's documentation for details.

    The default value is the server to which WLST is connected.

  • logger—A logger name. An empty string denotes the root logger.

    This option is required and has no default. The command throws an exception if the logger does not exist, unless the addLogger option is also used.

  • addLogger—A Jython boolean value (0 or 1) that determines if the logger should be created if it does not exist. This option is deprecated for runtime mode. Adding a runtime logger may have no effect because the logger may be garbage collected. If you need to set the level for a logger that has not yet been created, use the persist mode.

  • level—The level name. It can be either a Java level or an ODL level. Some valid Java levels are: SEVERE, WARNING, INFO, CONFIG, FINE, FINER, OR FINEST. Valid ODL levels include a message type followed by a colon and a message level. The valid ODL message types are: INCIDENT_ERROR, ERROR, WARNING, NOTIFICATION, TRACE, and UNKNOWN. The message level is represented by an integer value that qualifies the message type. Possible values are from 1 (highest severity) through 32 (lowest severity).

    This option is required; there is no default value.

  • runtime—A Jython boolean value (0 or 1) that determines if the operation is to list runtime loggers or config loggers. The default value is 1 (runtime). If the target is a system component that does not support changing runtime loggers, this option is ignored.

    Note: Because runtime loggers may be garbage collected, you should change the level of the runtime logger only if you know that the logger exists and that there is a strong reference to the logger. If the logger is garbage collected, any changes made to the logger level in runtime mode that are not persisted may be lost.

  • persist—A Jython boolean value (0 or 1) that determines if the level should be saved to the configuration file. The default value is 1.


Examples

The following example sets the log level to NOTIFICATION:1 for the logger oracle.my.logger:

setLogLevel(logger="oracle.my.logger", level="NOTICATION:1")

The following example sets the log level to TRACE:1 for the logger oracle.my.logger and specifies that the level should be saved to the configuration file:

setLogLevel(logger="oracle.my.logger", level="TRACE:1", persist=0)

The following example sets the log level to WARNING for the config logger oracle.my.logger on the WebLogic Server server1:

setLogLevel(target="server1", logger="oracle.my.logger", level="WARNING", runtime=0)

Search and Display Commands

Use the commands in Table 8-3 to view Oracle Fusion Middleware log files and to search log files for particular messages.

Table 8-3 Search and Display Commands

Use this command... To... Use with WLST...

displayLogs

List the logs for one or more components.

Online or Offline

listLogs

Search and display the contents of log files.

Online or Offline


displayLogs

Command Category: Search and Display

Use with WLST: Online or Offline

Description

Search and display the contents of diagnostic log files. The command returns a value only when the returnData option is set to true. By default it will not return any data. The return value depends on the option used.

Syntax

displayLogs([searchString,][options])
Argument Definition
searchString
An optional search string. Only messages that contain the given string (case-insensitive) will be returned.

Note that the displayLogs command can read logs in multiple formats and it converts the messages to ODL format. The search will be performed in the native format, if possible. Otherwise, it may be performed in the message contents, and it may exclude mark-up. Therefore you should avoid using mark-up characters in the search string.

options
An optional comma-separated list of options, specified as name-value pairs. Valid options include:
  • target—The name of a WebLogic Server instance, or a system component.

    For a system component, the syntax for the target is:

    opmn:instance-name/component-name
    

    In connected mode, the default target is the WebLogic domain. In disconnected mode, there is no default; the target option is required.

  • oracleInstance—In disconnected mode, defines the path to the ORACLE_INSTANCE or WebLogic domain home. In connected mode, this option is ignored.

  • log—A log file path. The command will read messages from the given log file. If the log file path is not given, the command will read all logs associated with the given target.

  • last—An integer value. Restricts the search to messages logged within the last minutes. The value can have a suffix s (second), m (minute), h (hour), or d (day) to specify a different time unit. (For example, last='2h' will be interpreted as the last 2 hours).

  • tail—An integer value. Restrict the search to the last n messages from each log file and limits the number of messages displayed to n.

  • pattern—A regular expression pattern. Only messages that contain the given pattern are returned. Using the pattern option is similar to using the searchString argument, except that you can use a regular expression.

    The regular expression pattern search is case sensitive (unless you explicitly turn on case-insensitive flags in the pattern). The pattern must follow java.util.regex syntax.

  • ecid—A string or string sequence containing one or more Execution Context ID (ECID) values to be used as a filter for log messages.

  • component—A string or string sequence containing one or more component ID values to be used as a filter for log messages.

  • module—A string or string sequence containing one or more module ID values to be used as a filter for log messages.

  • type—A string or string sequence containing one or more message type values to be used as a filter for log messages.

  • app—A string or string sequence containing one or more application values to be used as a filter for log messages.

options (continued)
  • query—A string that specifies an expression used to filter the contents of log messages.

    A simple expression has the form:

    field-name operator value
    

    where field-name is a log record field name and operator is an appropriate operator for the field type (for example, you can specify equals, startsWith, contains or matches for string fields).

    A field name is either one of the standard ODL attribute names (such as COMPONENT_ID, MSG_TYPE, MSG_TEXT, and SUPPL_DETAIL), or the name of a supplemental attribute (application specific), prefixed by SUPPL_ATTR. (For example, SUPPL_ATTR.myAttribute).

    A few common supplemental attributes can be used without the prefix. For example, you can use APP to filter by application name.

    You can combine multiple simple expressions using the boolean operators and, or and not to create complex expressions, and you can use parenthesis for grouping expressions.

    See the Oracle Fusion Middleware Administrator's Guide for a detailed description of the query syntax.

  • groupBy—A string list. When the groupBy option is used, the output is a count of log messages, grouped by the attributes defined in the string list.

  • orderBy—A string list that defines the sort order for the result. The values are log message attribute names. The name may be extended with an optional suffix ":asc" or ":desc" to specify ascending or descending sorting. The default sort order is ascending.

    By default, the result is sorted by time.

  • format—A string defined the output format. Valid values are ODL-Text, ODL-XML, ODL-complete and simple. The default format is ODL-Text.

  • exportFile—The name of a file to where the command output is written. By default, the output is written to standard output.

  • follow (f)—Puts the command in "follow" mode so that it continues to read the logs and display messages as new messages are added to the logs (similar to the UNIX tail -f command). The command will not return when the f option is used. This option is currently not supported with system components.

  • returnData—A Jython boolean value (0 or 1). If the value is true the command will return data (for example, to be used in a script). The default value is false, which means that the command only displays the data but does not return any data.


Examples

The following example displays the last 100 messages from all log files in the domain:.

displayLogs(tail=100)

The following example displays all messages logged in the last 15 minutes:

displayLogs(last='15m')

The following example displays log messages that contain a given string:

displayLogs('Exception')

The following example displays log messages that contain a given ECID:

displayLogs(ecid='0000Hl9TwKUCslT6uBi8UH18lkWX000002')

The following example displays log messages of type ERROR or INCIDENT_ERROR:

displayLogs(type=['ERROR','INCIDENT_ERROR'])

The following example displays log messages for a given Java EE application:

displayLogs(app="myApplication")

The following example displays messages for a system component, ohs1:

displayLogs(target="opmn:instance1/ohs1")

The following example displays a message summary by component and type:

displayLogs(groupBy=['COMPONENT_ID', 'MSG_TYPE'])

The following example displays messages for a particular time interval:

displayLogs(query="TIME from 11:15 and TIME to 11:20")

The following example shows an advanced query:

displayLogs(query="TIME from 11:15 and TIME to 11:20 and ( MSG_TEXT contains 
   exception or SUPPL_DETAIL contains exception )")

A similar query could be written as:

displayLogs("exception", query="TIME from 11:15 and TIME to 11:20")

listLogs

Command Category: Search and Display

Use with WLST: Online or Offline

Description

Lists log files for Oracle Fusion Middleware components. This command returns a PyArray with one element for each log. The elements of the array are javax.management.openmbean.CompositeData objects describing each log.

Syntax

listLogs([options]
Argument Definition
options
An optional comma-separated list of options, specified as name-value pairs. Valid options include:
  • target—The name of a WebLogic Server instance, or an Oracle Fusion Middleware system component.

    For a system component, the syntax for the target is:

    opmn:instance-name/component-name
    

    In connected mode, the default target is the WebLogic domain.

    In disconnected mode, there is no default; the target option is required.

  • oracleInstance—In disconnected mode, defines the path to the ORACLE_INSTANCE or WebLogic domain home. In connected mode, this option is ignored.

  • unit—defines the unit to use for reporting file size. Valid values are B (bytes), K (kilobytes), M (megabytes), G (gigabytes), or H (display size in a human-readable form, similar to the UNIX ls -h option). The default value is H.

  • fullTime—A Jython Boolean value. If true, reports the full time for the log file last modified time. Otherwise, it displays a short version of the time. The default value is false.


Examples

The following example lists all of the log files for the WebLogic domain:

listLogs()

The following example lists the log files for the WebLogic Server server1:

listLogs(target="server1")

The following example lists the log files for the Oracle HTTP Server ohs1:

listLogs(target="opmn:instance1/ohs1")

The following example, used in disconnected mode, lists the log files for the WebLogic Server server1:

listLogs(oracleInstance="/middleware/user_projects/domains/base_domain",
           target="server1")