depollueur/src/cpp/kazDebug.cpp
2021-05-06 09:58:16 +02:00

87 lines
3.2 KiB
C++

////////////////////////////////////////////////////////////////////////////
// Copyright KAZ 2021 //
// //
// contact (at) kaz.bzh //
// //
// This software is a filter to shrink email by attachment extraction. //
// //
// This software is governed by the CeCILL-B license under French law and //
// abiding by the rules of distribution of free software. You can use, //
// modify and/or redistribute the software under the terms of the //
// CeCILL-B license as circulated by CEA, CNRS and INRIA at the following //
// URL "http://www.cecill.info". //
// //
// As a counterpart to the access to the source code and rights to copy, //
// modify and redistribute granted by the license, users are provided //
// only with a limited warranty and the software's author, the holder of //
// the economic rights, and the successive licensors have only limited //
// liability. //
// //
// In this respect, the user's attention is drawn to the risks associated //
// with loading, using, modifying and/or developing or reproducing the //
// software by the user in light of its specific status of free software, //
// that may mean that it is complicated to manipulate, and that also //
// therefore means that it is reserved for developers and experienced //
// professionals having in-depth computer knowledge. Users are therefore //
// encouraged to load and test the software's suitability as regards //
// their requirements in conditions enabling the security of their //
// systems and/or data to be ensured and, more generally, to use and //
// operate it in the same conditions as regards security. //
// //
// The fact that you are presently reading this means that you have had //
// knowledge of the CeCILL-B license and that you accept its terms. //
////////////////////////////////////////////////////////////////////////////
#include <iomanip>
#include <sstream>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/chrono.hpp>
#include "kazDebug.hpp"
using namespace std;
using namespace kaz;
bool
Log::debug = false;
size_t
Log::indent = 0;
// ================================================================================
string
Log::getLocalTimeStr () {
using namespace boost::posix_time;
using namespace std;
ptime now = second_clock::second_clock::local_time ();
stringstream ss;
auto date = now.date ();
auto time = now.time_of_day ();
ss << setfill ('0') << "["
<< setw (2) << static_cast<int> (date.month ()) << "/" << setw (2) << date.day ()
<< "] " << setw (2)
<< time.hours () << ":" << setw (2) << time.minutes ();
return ss.str();
}
Log::Log (const string &functName)
: functName (functName) {
++indent;
if (debug)
cerr << *this << "> ";
}
Log::~Log () {
if (debug)
cerr << *this << "<" << endl << flush;
--indent;
}
ostream &
kaz::operator << (ostream &out, const Log &log) {
return out << Log::getLocalTimeStr () << setw (3) << setw ((log.indent % 20)*2) << "" << log.functName;
}
// ================================================================================