// $Id$ #ifndef TAO_LOGGER_IDL #define TAO_LOGGER_IDL // TAO_MAXLOGMSGLEN must be the same size as ACE_MAXLOGMSGLEN. #if !defined TAO_MAXLOGMSGLEN #define TAO_MAXLOGMSGLEN 4 * 1024 #endif /* TAO_MAXLOGMSGLEN */ interface Logger { // = TITLE // Used to log messages to a logging server. // // = DESCRIPTION // This implementation provides a CORBA wrapper around the // mechanism. enum Log_Priority { LM_SHUTDOWN, // Shutdown the logger LM_TRACE, // Messages indicating function-calling sequence LM_DEBUG, // Messages that contain information normally of use only when // debugging a program LM_INFO, // Informational messages LM_NOTICE, // Conditions that are not error conditions, but that may require // special handling LM_WARNING, // Warning messages LM_STARTUP, // Initialize the logger LM_ERROR, // Error messages LM_CRITICAL, // Critical conditions, such as hard device errors LM_ALERT, // A condition that should be corrected immediately, such as a // corrupted system database LM_EMERGENCY, // A panic condition. This is normally broadcast to all users LM_MAX // In , LM_MAX is aliased to LM_EMERGENCY rather than // being a distinct tag, but that is invalid IDL syntax. We // adjust for this internally. }; enum Verbosity_Level { VERBOSE, // Display messages in a verbose manner. VERBOSE_LITE, // Display messages in a less verbose manner (i.e., only print // information that can change between calls). SILENT // Do not print messages at all (just leave in thread-specific // storage for later inspection). }; struct Log_Record { Log_Priority type; // Type of logging message. long time; // Timestamp of the sender. long app_id; // Process id of the sender. long host_addr; // IP address of the sender. string msg_data; // The logging message. }; oneway void log (in Log_Record log_rec); // Transmit a Log_Record to the logging server. oneway void logv (in Log_Record log_rec, in Verbosity_Level level); // Log a message with a specific Verbosity level which may be // differeny from the void log2 (in Log_Record log_rec); // Like log (), but twoway such that applications will block until // log messages are recieved by the logger void logv2 (in Log_Record log_rec, in Verbosity_Level level); // Like logv (), but twoway for the same reason as log2 () oneway void verbosity (in Verbosity_Level level); // Change the state of the . This controls how // much logging information is displayed by the server. }; interface Logger_Factory { // = TITLE // Create a of type . Logger make_logger (in string name); // Returns a new instance if is unique, or retuns a // previously created instance of that name }; #endif /* TAO_LOGGER_IDL */