OpenDDS  Snapshot(2023/04/28-20:55)
Public Types | Public Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::LogLevel Class Reference

#include <debug.h>

Public Types

enum  Value {
  None, Error, Warning, Notice,
  Info, Debug
}
 

Public Member Functions

 LogLevel (Value value)
 
void set (Value value)
 
void set_from_string (const char *name)
 
Value get () const
 
const char * get_as_string () const
 

Private Attributes

Value level_
 

Detailed Description

General control for logging in OpenDDS.

Access using the log_level global object.

Definition at line 31 of file debug.h.

Member Enumeration Documentation

◆ Value

Enumerator
None 
Error 
Warning 
Notice 
Info 
Debug 

Definition at line 33 of file debug.h.

Constructor & Destructor Documentation

◆ LogLevel()

OpenDDS::DCPS::LogLevel::LogLevel ( Value  value)
inline

Definition at line 42 of file debug.h.

References name, and value.

43  {
44  set(value);
45  }
const LogLevel::Value value
Definition: debug.cpp:61

Member Function Documentation

◆ get()

Value OpenDDS::DCPS::LogLevel::get ( void  ) const
inline

Definition at line 50 of file debug.h.

Referenced by OpenDDS::DCPS::operator>=(), and OpenDDS::DCPS::set_DCPS_debug_level().

51  {
52  return level_;
53  }

◆ get_as_string()

const char * OpenDDS::DCPS::LogLevel::get_as_string ( void  ) const

Definition at line 87 of file debug.cpp.

References ACE_ERROR, OpenDDS::DCPS::array_count(), and LM_WARNING.

Referenced by OpenDDS::DCPS::Service_Participant::get_domain_participant_factory().

88 {
89  const unsigned index = static_cast<unsigned>(get());
90  if (index >= array_count(log_levels)) {
91  ACE_ERROR((LM_WARNING, "(%P|%t) WARNING: LogLevel::get_as_string: "
92  "Invalid log level value: %u\n", index));
93  return "invalid";
94  }
95  return log_levels[index].name;
96 }
#define ACE_ERROR(X)
size_t array_count(Type(&)[count])
Definition: Util.h:221

◆ set()

void OpenDDS::DCPS::LogLevel::set ( LogLevel::Value  value)

Definition at line 35 of file debug.cpp.

References Debug, level_, Notice, and value.

Referenced by OpenDDS::DCPS::set_DCPS_debug_level().

36 {
37  level_ = value;
38 #ifdef OPENDDS_SECURITY
39  if (level_ >= Notice) {
41  } else {
43  }
44 #endif
45  if (level_ >= Debug) {
46  if (DCPS_debug_level == 0) {
47  DCPS_debug_level = 1;
48  }
49  } else {
50  DCPS_debug_level = 0;
51 #ifndef OPENDDS_UTIL_BUILD
53  transport_debug = TransportDebug();
54 #endif
55  }
56 }
void set_all_flags_to(bool value)
Set all security debug message flags to this value.
Definition: debug.cpp:117
const LogLevel::Value value
Definition: debug.cpp:61
OpenDDS_Dcps_Export TransportDebug transport_debug
Definition: debug.cpp:26
OpenDDS_Dcps_Export unsigned int Transport_debug_level
Transport Logging verbosity level.
Definition: debug.cpp:25
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
void set_debug_level(unsigned level)
Definition: debug.cpp:182
OpenDDS_Dcps_Export SecurityDebug security_debug
Definition: debug.cpp:32

◆ set_from_string()

void OpenDDS::DCPS::LogLevel::set_from_string ( const char *  name)

Definition at line 73 of file debug.cpp.

References ACE_ERROR, OpenDDS::DCPS::array_count(), LM_WARNING, OpenDDS::DCPS::log_level, and Warning.

Referenced by OpenDDS::DCPS::Service_Participant::load_common_configuration(), and OpenDDS::DCPS::Service_Participant::parse_args().

74 {
75  for (size_t i = 0; i < array_count(log_levels); ++i) {
76  if (!std::strcmp(log_levels[i].name, name)) {
77  set(log_levels[i].value);
78  return;
79  }
80  }
81  if (log_level >= Warning) {
82  ACE_ERROR((LM_WARNING, "(%P|%t) WARNING: LogLevel::set_from_string: "
83  "Invalid log level name: %C\n", name));
84  }
85 }
#define ACE_ERROR(X)
size_t array_count(Type(&)[count])
Definition: Util.h:221
const char *const name
Definition: debug.cpp:60
OpenDDS_Dcps_Export LogLevel log_level

Member Data Documentation

◆ level_

Value OpenDDS::DCPS::LogLevel::level_
private

Definition at line 57 of file debug.h.

Referenced by set().


The documentation for this class was generated from the following files: