A common library used by Digi International Inc. mbed libraries to output debug information.

Dependents:   XBeeLib XBeeLib_Test Chi-XBee-Actuator Chi-XBee-Sensor ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DigiLogger.h Source File

DigiLogger.h

00001 /**
00002  * Copyright (c) 2015 Digi International Inc.,
00003  * All rights not expressly granted are reserved.
00004  *
00005  * This Source Code Form is subject to the terms of the Mozilla Public
00006  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
00007  * You can obtain one at http://mozilla.org/MPL/2.0/.
00008  *
00009  * Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
00010  * =======================================================================
00011  */
00012 
00013 #if !defined(__DIGI_LOGGER_H_)
00014 #define __DIGI_LOGGER_H_
00015 
00016 #include <cstdlib>
00017 #include <stdio.h>
00018 
00019 /**
00020  * @defgroup LogLevel
00021  * @{
00022  */
00023 /**
00024  * Library Logging level.
00025  */
00026 enum LogLevel {
00027     LogLevelNone,      /** Level None */
00028     LogLevelError,     /** Level Error */
00029     LogLevelWarning,   /** Level Warning */
00030     LogLevelInfo,      /** Level Info */
00031     LogLevelDebug,     /** Level Debug */
00032     LogLevelFrameData, /** Level Frame Data */
00033     LogLevelAll        /** Level All */
00034 };
00035 /**
00036  * @}
00037  */
00038 
00039 #define DEBUG_BUFFER_LEN    200
00040 
00041 namespace DigiLog {
00042 
00043 class DigiLogger
00044 {
00045     protected:
00046 
00047         /** module log level */
00048         static LogLevel _log_level;
00049 
00050         static DigiLogger* current_logger;
00051 
00052         /* Not implemented for base class */
00053         virtual void log_buffer(char const * const buffer);
00054 
00055     public:
00056 
00057         /** Class constructor */
00058         DigiLogger();
00059 
00060         /** Class destructor */
00061         virtual ~DigiLogger();
00062 
00063         /** set_level - set logging level.
00064          *
00065          *  @param log_level desired overall logging level
00066          */
00067         static void set_level(LogLevel log_level);
00068 
00069         /** get_level - get logging level.
00070          *
00071          *  @returns current overall logging level
00072          */
00073         static LogLevel get_level();
00074 
00075         /** log_format - logs a printf-like message.
00076          *
00077          *  @param log_level logging level
00078          *  @param format ... printf-like message
00079          */
00080         static void log_format(LogLevel log_level, const char *format, ...);
00081 
00082 };
00083 
00084 }   /* namespace DigiLog */
00085 
00086 #endif /* defined(__DIGI_LOGGER_H_) */
00087 
00088 
00089