//////////////////////////////////////////////////////////////////////////// // 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 #include #include #include #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 (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; } // ================================================================================