Logging is a feature that helps in identifying misconfigurations, system failures etc., by logging messages on to the console or syslog server. It is useful for debugging purposes and take appropriate actions based on the messages logged. Logging uses various severity levels to report the condition that has occurred.
Logging OpEN API
This document provides a brief description of the Logging OpEN APIs. The Logging OpEN APIs allow processes outside of the EFOS main process (switchdrvr) access to Logging Management services. It provides the following services:
- Set/Get CLI Command Logging mode.
- Set/Get Console Logging mode.
- Set/Get Console Logging severity level.
- Set/Get Persistent Logging mode.
- Set/Get Persistent Logging severity level.
- Set/Get Syslogging mode.
- Set/Get Syslog port.
- Set/Get/Delete Logging host.
- Set/Get Logging host port and severity level.
- Set/Get USB Logging mode.
- Set/Get USB Logging severity level.
- Get maximum number of Logging hosts supported.
- Get maximum length of the logging host address.
- Get duplicate log suppression mode.
- Set duplicate log suppression mode.
- Get duplicate log suppression repeat interval.
- Set duplicate log suppression repeat interval.
- Set/Get Buffered logging mode.
- Set/Get Buffered logging behavior.
- Set/Get Buffered logging severity level.
- Get Buffered logging number of messages.
- Get Persistent logging number of current messages.
- Get Persistent logging number of previous messages.
- Get Persistent logging current entries.
- Get Persistent logging previous entries.
- Get Trap logging number of messages since last reset.
- Get Trap logging number of messages since last viewed.
- Get Trap logging capacity.
- Set USB Logging device number.
- Get USB Logging device number.
All 'Set' operations may affect the Switch behavior and configuration.
Example C Application logging_example
Initialization
In the main function, the sample application initializes the OpEN API RPC service by calling openapiClientRegister() and waits for the RPC service in switchdrvr to start. A Client Handle is returned by openapiClientRegister() which is used while invoking the OpEN APIs. The application then exercises the associated OpEN APIs and logs informational and/or error messages on the console. The example application runs to its completion and exits.
logging_example
logging_example.c is a sample application that demonstrates the use of the Logging OpEN APIs. logging_example is started from the command line and has the following usage syntax:
Usage: logging_example <test#> <arg1> <arg2> ...
- Test 1: Set CLI command logging mode: logging_example 1 <mode>
- Test 2: Get CLI command logging mode: logging_example 2
- Test 3: Set console logging mode: logging_example 3 <mode>
- Test 4: Get console logging mode: logging_example 4
- Test 5: Set console logging severity level: logging_example 5 <severity-level>
- Test 6: Get console logging severity level: logging_example 6
- Test 7: Set persistent logging mode: logging_example 7 <mode>
- Test 8: Get persistent logging mode: logging_example 8
- Test 9: Set persistent logging severity level: logging_example 9 <severity-level>
- Test 10: Get persistent logging severity level: logging_example 10
- Test 11: Set syslog mode: logging_example 11 <mode>
- Test 12: Get syslog mode: logging_example 12
- Test 13: Set syslog port: logging_example 13 <syslog port>
- Test 14: Get syslog port: logging_example 14
- Test 15: Add logging host: logging_example 15 <host address>
- Test 16: Set logging host port: logging_example 16 <host address> <port>
- Test 17: Set logging host severity level: logging_example 17 <host address> <severity-level>
- Test 18: Delete logging host: logging_example 18 <host address>
- Test 19: Show logging host details: logging_example 19
- Test 20: Retrieve buffered log entries: logging_example 20
- Test 21: Clear buffered log: logging_example 21
- Test 22: Retrieve trap log entries: logging_example 22
- Test 23: Clear trap log: logging_example 23
- Test 24: Set USB logging mode: logging_example 24 <mode>
- Test 25: Get USB logging mode: logging_example 25
- Test 26: Set USB logging severity level: logging_example 26 <severity-level>
- Test 27: Get USB logging severity level: logging_example 27
- Test 28: Logging OpEN APIs Sanity: logging_example 28
- Test 29: Get USB logging operational mode: logging_example 29
- Test 30: Get duplicate log suppression mode: logging_example 30
- Test 31: Set duplicate log suppression mode: logging_example 31 <mode>
- Test 32: Get duplicate log suppression repeat interval: logging_example 32
- Test 33: Set duplicate log suppression repeat interval: logging_example 33 <interval>
- Test 34: Set buffered log mode: logging_example 34 <mode>
- Test 35: Get buffered log mode: logging_example 35
- Test 36: Set buffered log behavior: logging_example 36 <behavior>
- Test 37: Get buffered log behavior: logging_example 37
- Test 38: Set buffered log severity filter: logging_example 38 <severity-filter>
- Test 39: Get buffered log severity filter: logging_example 39
- Test 40: Get buffered log number of messages: logging_example 40
- Test 41: Get persistent log number of current messages: logging_example 41
- Test 42: Get persistent log number of previous messages: logging_example 42 <fileIndex>
- Test 43: Retrieve current persistent log entries: logging_example 43
- Test 44: Retrieve previous persistent log entries: logging_example 44 <fileIndex>
- Test 45: Get trap log number of messages since last reset: logging_example 45
- Test 46: Get trap log number of messages since last viewed: logging_example 46
- Test 47: Get trap log capacity: logging_example 47
- Test 48: Set USB logging device number: logging_example 48 <deviceNumber>
- Test 49: Get USB logging device number: logging_example 49
It exercises all the Logging OpEN APIs with appropriate arguments to manage the Logging component in the EFOS main process (switchdrvr).
Logging CLI/API Cross Reference
(Priv-User Mode)#
show logging | openapiUsbLoggingModeGet()
openapiUsbLoggingSeverityGet()
openapiUsbLoggingOperModeGet()
openapiLogSuppressDupLogModeGet()
openapiLogSuppressDupLogRepeatIntvlGet()
openapiBufferedLogModeGet()
openapiBufferedLogBehaviorGet()
openapiBufferedLogSeverityFilterGet()
openapiPersistentLoggingNumberOfCurrentMessagesGet() |
openapiPersistentLoggingNumberOfPreviousMessagesGet() |
openapiPersistentLoggingEntryNextGet() |
openapiTrapLogNumberOfTrapsSinceLastResetGet() |
openapiTrapLogNumberOfTrapsSinceLastViewedGet() |
openapiTrapLogCapacityGet() |
openapiLogUsbDeviceNumberGet() (Config)#
logging usb device-number <device-number> | openapiLogUsbDeviceNumberSet()