Logger.cpp
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 #include "cob_sick_s300/Logger.hpp"
00053 
00054 namespace brics_oodl {
00055 
00056   bool Logger::toConsole = false;
00057   bool Logger::toFile = false;
00058   bool Logger::toROS = true;
00059   severity_level Logger::logginLevel = trace;
00060 
00061   Logger::Logger(const std::string &funcName, const int &lineNo, const std::string &fileName, severity_level level) {
00062 
00063     this->level = level;
00064     if (toConsole || toFile) {
00065       if (level >= logginLevel) {
00066         print = true;
00067 
00068         switch (level) {
00069           case trace:
00070             out << "Trace" << ": ";
00071             break;
00072           case debug:
00073             out << "Debug" << ": ";
00074             break;
00075           case info:
00076             out << "Info" << ": ";
00077             break;
00078           case warning:
00079             out << "Warning" << ": ";
00080             break;
00081           case error:
00082             out << "Error" << ": ";
00083             break;
00084           case fatal:
00085             out << "Fatal" << ": ";
00086             break;
00087           default:
00088             break;
00089         }
00090         //  out << "function " << funcName << ": ";
00091         //  out << "line " << lineNo << ": ";
00092         //  out << "fileName " << fileName << ": ";
00093         //  out << "time " << boost::posix_time::microsec_clock::local_time() << ": ";
00094       } else {
00095         print = false;
00096       }
00097     } else {
00098       print = false;
00099     }
00100 
00101   }
00102 
00103   Logger::~Logger() {
00104     //end of message
00105     if (toConsole && print) {
00106       std::cout << out.str() << std::endl;
00107     }
00108 
00109     if (toFile && print) {
00110       std::fstream filestr;
00111       filestr.open("log.txt", std::fstream::out | std::fstream::app);
00112       filestr << out.str() << std::endl;
00113       filestr.close();
00114     }
00115 
00116     if (toROS) {
00117       switch (level) {
00118         case trace:
00119           ROS_DEBUG(out.str().c_str());
00120           break;
00121         case debug:
00122           ROS_DEBUG(out.str().c_str());
00123           break;
00124         case info:
00125           ROS_INFO(out.str().c_str());
00126           break;
00127         case warning:
00128           ROS_WARN(out.str().c_str());
00129           break;
00130         case error:
00131           ROS_ERROR(out.str().c_str());
00132           break;
00133         case fatal:
00134           ROS_FATAL(out.str().c_str());
00135           break;
00136         default:
00137           break;
00138       }
00139     }
00140   }
00141 
00142 } // namespace youbot


cob_sick_s300
Author(s): Florian Weisshardt
autogenerated on Sun Oct 5 2014 23:05:19