Drake
text_logging.h File Reference

This is the entry point for all text logging within Drake. More...

#include <memory>
#include "drake/common/drake_copyable.h"
Include dependency graph for text_logging.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  logger
 A stubbed-out version of spdlog::logger. More...
 

Namespaces

 drake
 NOTE: The contents of this class are for the most part direct ports of drake/systems/plants//inverseKinBackend.m from Matlab to C++; many methods and variables follow Matlab conventions and are documented in that file.
 
 drake::logging
 

Macros

#define SPDLOG_TRACE(logger, ...)
 
#define SPDLOG_DEBUG(logger, ...)
 

Functions

logging::logger * log ()
 Retrieve an instance of a logger to use for logging; for example: drake::log()->info("potato!") More...
 

Detailed Description

This is the entry point for all text logging within Drake.

Once you've included this file, the suggested ways you should write log messages include:

  drake::log()->trace("Some trace message: {} {}", something, some_other);

Similarly, it provides:

  drake::log()->debug(...);
  drake::log()->info(...);
  drake::log()->warn(...);
  drake::log()->error(...);
  drake::log()->critical(...);

If you want to log objects that are expensive to serialize, these macros will not be compiled if debugging is turned off (-DNDEBUG is set):

  SPDLOG_TRACE(drake::log(), "message: {}", something_conditionally_compiled);
  SPDLOG_DEBUG(drake::log(), "message: {}", something_conditionally_compiled);

The format string syntax is fmtlib; see http://fmtlib.net/3.0.0/syntax.html. In particular, any class that overloads operator<< for ostream can be printed without any special handling.

Macro Definition Documentation

#define SPDLOG_DEBUG (   logger,
  ... 
)
#define SPDLOG_TRACE (   logger,
  ... 
)