blob: 357369f7c09dd24fd5f4f9aceb3e4941e60187d7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 - 2013 ACIN, Profactor GmbH, fortiss GmbH
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Rene Smodic, Thomas Strasser, Alois Zoitl, Ingo Hegny, Monika Wenger
* - initial API and implementation and/or initial documentation
*******************************************************************************/
#ifndef _DEVLOG_H_
#define _DEVLOG_H_
/*!\ingroup FORTE_HAL
* \brief CDeviceLog is the entity that logs messages created by the FORTE Runtime system.
* They can be printed to a console or archived somewhere (This is implementation dependent).
*/
enum E_MsgLevel {E_INFO, E_WARNING, E_ERROR, E_DEBUG, E_TRACE};
// possible loglevels: NOLOG, LOGERROR, LOGWARNING, LOGINFO, LOGDEBUG
/* Meaning:
* LOGERROR: log only error messages
* LOGWARNING: log error and warning messages
* LOGINFO: log error, warning, and info messages
* LOGDEBUG: log all messages: error, warning, info, and debug
* NOLOG: log no messages
*/
#if !(defined(NOLOG) || defined(LOGERROR) || defined(LOGWARNING) || defined(LOGINFO) || defined(LOGDEBUG))
/* Set default loglevel */
# define LOGDEBUG
#endif
#ifdef LOGDEBUG
#define DEVLOG_ERROR(...) logMessage(E_ERROR, __VA_ARGS__)
#define DEVLOG_WARNING(...) logMessage(E_WARNING, __VA_ARGS__)
#define DEVLOG_INFO(...) logMessage(E_INFO, __VA_ARGS__)
#define DEVLOG_DEBUG(...) logMessage(E_DEBUG, __VA_ARGS__)
#define DEVLOG_ERROR_VAR(X) X
#define DEVLOG_WARNING_VAR(X) X
#define DEVLOG_INFO_VAR(X) X
#define DEVLOG_DEBUG_VAR(X) X
#endif
#ifdef LOGERROR
#define DEVLOG_ERROR(...) logMessage(E_ERROR, __VA_ARGS__)
#define DEVLOG_WARNING(...)
#define DEVLOG_INFO(...)
#define DEVLOG_DEBUG(...)
#define DEVLOG_ERROR_VAR(X) X
#define DEVLOG_WARNING_VAR(X)
#define DEVLOG_INFO_VAR(X)
#define DEVLOG_DEBUG_VAR(X)
#endif
#ifdef LOGWARNING
#define DEVLOG_ERROR(...) logMessage(E_ERROR, __VA_ARGS__)
#define DEVLOG_WARNING(...) logMessage(E_WARNING, __VA_ARGS__)
#define DEVLOG_INFO(...)
#define DEVLOG_DEBUG(...)
#define DEVLOG_ERROR_VAR(X) X
#define DEVLOG_WARNING_VAR(X) X
#define DEVLOG_INFO_VAR(X)
#define DEVLOG_DEBUG_VAR(X)
#endif
#ifdef LOGINFO
#define DEVLOG_ERROR(...) logMessage(E_ERROR, __VA_ARGS__)
#define DEVLOG_WARNING(...) logMessage(E_WARNING, __VA_ARGS__)
#define DEVLOG_INFO(...) logMessage(E_INFO, __VA_ARGS__)
#define DEVLOG_DEBUG(...)
#define DEVLOG_ERROR_VAR(X) X
#define DEVLOG_WARNING_VAR(X) X
#define DEVLOG_INFO_VAR(X) X
#define DEVLOG_DEBUG_VAR(X)
#endif
#ifdef NOLOG
#define DEVLOG_INFO(...)
#define DEVLOG_WARNING(...)
#define DEVLOG_ERROR(...)
#define DEVLOG_DEBUG(...)
#define DEVLOG_ERROR_VAR(X)
#define DEVLOG_WARNING_VAR(X)
#define DEVLOG_INFO_VAR(X)
#define DEVLOG_DEBUG_VAR(X)
#endif
#if (defined(FORTE_TRACE_EVENTS) && !defined(NOLOG))
#define FORTE_TRACE(...) logMessage(E_TRACE, __VA_ARGS__)
#else
#define FORTE_TRACE(...)
#endif
#ifndef NOLOG
/*! \brief Adds an Entry to the LogBook
*
*/
void logMessage(E_MsgLevel pa_eLevel, const char *pa_acMessage, ...);
#endif //#ifndef NOLOG
#endif //_DEVLOG_H_