Logger.hpp
Go to the documentation of this file.
00001 /****************************************************************
00002  *
00003  * Copyright (c) 2011
00004  * All rights reserved.
00005  *
00006  * Hochschule Bonn-Rhein-Sieg
00007  * University of Applied Sciences
00008  * Computer Science Department
00009  *
00010  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00011  *
00012  * Author:
00013  * Jan Paulus, Nico Hochgeschwender, Michael Reckhaus, Azamat Shakhimardanov
00014  * Supervised by:
00015  * Gerhard K. Kraetzschmar
00016  *
00017  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00018  *
00019  * This sofware is published under a dual-license: GNU Lesser General Public
00020  * License LGPL 2.1 and BSD license. The dual-license implies that users of this
00021  * code may choose which terms they prefer.
00022  *
00023  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00024  *
00025  * Redistribution and use in source and binary forms, with or without
00026  * modification, are permitted provided that the following conditions are met:
00027  *
00028  *     * Redistributions of source code must retain the above copyright
00029  *       notice, this list of conditions and the following disclaimer.
00030  *     * Redistributions in binary form must reproduce the above copyright
00031  *       notice, this list of conditions and the following disclaimer in the
00032  *       documentation and/or other materials provided with the distribution.
00033  *     * Neither the name of the Hochschule Bonn-Rhein-Sieg nor the names of its
00034  *       contributors may be used to endorse or promote products derived from
00035  *       this software without specific prior written permission.
00036  *
00037  * This program is free software: you can redistribute it and/or modify
00038  * it under the terms of the GNU Lesser General Public License LGPL as
00039  * published by the Free Software Foundation, either version 2.1 of the
00040  * License, or (at your option) any later version or the BSD license.
00041  *
00042  * This program is distributed in the hope that it will be useful,
00043  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00044  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00045  * GNU Lesser General Public License LGPL and the BSD license for more details.
00046  *
00047  * You should have received a copy of the GNU Lesser General Public
00048  * License LGPL and BSD license along with this program.
00049  *
00050  ****************************************************************/
00051 
00052 #ifndef YOUBOT_LOGGER_HPP
00053 #define YOUBOT_LOGGER_HPP
00054 
00055 #include <iostream>
00056 #include <fstream>
00057 #include <boost/date_time/posix_time/posix_time.hpp>
00058 
00059 #ifdef USE_ROS_LOGGING
00060 #include <ros/ros.h>
00061 #endif
00062 
00063 namespace youbot
00064 {
00065 
00066 enum severity_level
00067 {
00068   trace, debug, info, warning, error, fatal
00069 };
00070 
00074 class Logger
00075 {
00076 private:
00077   std::stringstream out;
00078   bool print;
00079   severity_level level;
00080 public:
00081 
00082   Logger(const std::string &funcName, const int &lineNo, const std::string &fileName, severity_level level);
00083   ~Logger();
00084 
00085   static bool toConsole;
00086   static bool toFile;
00087   static bool toROS;
00088   static severity_level logginLevel;
00089 
00090   template<class T>
00091     Logger & operator<<(const T &v)
00092     {
00093       out << v;
00094       return *this;
00095     }
00096 };
00097 
00098 #define LOG(level) Logger(__PRETTY_FUNCTION__, __LINE__ , __FILE__, level)
00099 
00100 } // namespace youbot
00101 
00102 #endif  /* YOUBOT_LOGGER_HPP */
00103 


youbot_driver
Author(s): Jan Paulus
autogenerated on Mon Oct 6 2014 09:08:01