AVPKit
com::avpkit::ferry::Logger Class Reference

Internal Only. More...

#include <Logger.h>

Public Types

enum  Level {
  LEVEL_ERROR =0 , LEVEL_WARN =1 , LEVEL_INFO =2 , LEVEL_DEBUG =3 ,
  LEVEL_TRACE =4
}
 Different logging levels (noiseness) supported by us.
 
typedef enum com::avpkit::ferry::Logger::Level Level
 Different logging levels (noiseness) supported by us.
 

Public Member Functions

bool log (const char *filename, int lineNo, Level level, const char *format,...)
 Log the message to the logger, using sprintf() format strings. More...
 
bool logVA (const char *filename, int lineNo, Level level, const char *format, va_list ap)
 
bool error (const char *filename, int lineNo, const char *format,...)
 
bool warn (const char *filename, int lineNo, const char *format,...)
 
bool info (const char *filename, int lineNo, const char *format,...)
 
bool debug (const char *filename, int lineNo, const char *format,...)
 
bool trace (const char *filename, int lineNo, const char *format,...)
 
bool isLogging (Level level)
 
void setIsLogging (Level level, bool value)
 
const char * getName ()
 

Static Public Member Functions

static LoggergetLogger (const char *aLoggerName)
 Returns a new Logger object for this loggerName. More...
 
static LoggergetStaticLogger (const char *aLoggerName)
 Get a Logger object, but ask the Logger code to free it up once the JavaVM shuts down. More...
 
static bool isGlobalLogging (Level level)
 
static void setGlobalIsLogging (Level level, bool value)
 

Protected Member Functions

 Logger (const char *loggerName, jobject aJavaLogger)
 

Detailed Description

Internal Only.

C++ wrapper to SLF4J Java Logging frame work.

If not running inside a JVM, then this class just does a rudimentary printout of log messages to stderr.

Otherwise, it forwards to Java's SLF4J logging framework.

Definition at line 47 of file Logger.h.

Member Function Documentation

◆ getLogger()

Logger * com::avpkit::ferry::Logger::getLogger ( const char *  aLoggerName)
static

Returns a new Logger object for this loggerName.

Parameters
aLoggerNameA name (no spaces allowed) for this logger.
Returns
a New logger for logging; caller must delete when done.

Definition at line 143 of file Logger.cpp.

144  {
145 
146  Logger* retval = 0;
147  if (loggerName && *loggerName)
148  {
149  if (mGetLoggerMethod)
150  {
151  JNIEnv *env=JNIHelper::sGetEnv();
152  if (env)
153  {
154  jobject javaLogger = 0;
155  jstring jLoggerName = env->NewStringUTF(loggerName);
156  // Time to get a Java Logger
157  javaLogger = env->CallStaticObjectMethod(mClass,
158  mGetLoggerMethod, jLoggerName);
159  env->DeleteLocalRef(jLoggerName);
160  jLoggerName = 0;
161 
162  retval = new Logger(loggerName, javaLogger);
163 
164  if (javaLogger)
165  env->DeleteLocalRef(javaLogger);
166  javaLogger = 0;
167  }
168  } else {
169  retval = new Logger(loggerName, 0);
170  }
171 
172  }
173  return retval;
174  }

Referenced by getStaticLogger().

◆ getStaticLogger()

Logger * com::avpkit::ferry::Logger::getStaticLogger ( const char *  aLoggerName)
static

Get a Logger object, but ask the Logger code to free it up once the JavaVM shuts down.

Use at your own risk.

Parameters
aLoggerNameA name (no spaces allowed) for this logger.
Returns
A new logger for logging; caller must not call delete and must not use the logger once the JavaVM (or main) has exited.

Definition at line 177 of file Logger.cpp.

178  {
179  Logger* logger = 0;
180 
181  logger = Logger::getLogger(aLoggerName);
182  if (logger)
183  {
184  // Register a function to kill it when the JNIHelper says we
185  // can
186  JNIHelper::sRegisterTerminationCallback(Logger::shutdownJavaBindings,
187  logger);
188  }
189  return logger;
190  }
static Logger * getLogger(const char *aLoggerName)
Returns a new Logger object for this loggerName.
Definition: Logger.cpp:143

References getLogger().

◆ log()

bool com::avpkit::ferry::Logger::log ( const char *  filename,
int  lineNo,
Level  level,
const char *  format,
  ... 
)

Log the message to the logger, using sprintf() format strings.

Parameters
filenameThe filename that is logging, or NULL.
lineNoThe line number where this log statement is executed from. or 0.
levelLevel to log at.
formatA format specification string, in sprintf format.
Returns
if the message was actually logged.

Definition at line 324 of file Logger.cpp.

325  {
326  bool didLog = false;
327  va_list ap;
328 
329  va_start(ap, fmt);
330  didLog = this->logVA(filename, line, level, fmt, ap);
331  va_end(ap);
332  return didLog;
333  }

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