| /******************************************************************************* |
| * 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_ |